Python簡單易學,但又博大精深。許多人號稱精通Python,卻不會寫Pythonic的代碼,對不少經常使用包的使用也並不熟悉。學海無涯,咱們先來了解一些Python中最基本的內容。python
Python的特色編程
解釋型語言,無需編譯便可運行app
提供了交互式命令行ide
基於對象的編程思想模塊化
跨平臺和良好的兼容性,在Windows、Mac、Linux上均可運行函數
簡單好用並且功能強大編碼
01 中文編碼spa
不少同窗在打開數據時會趕上亂碼問題,其緣由是字符集的編碼問題。Linux和Mac默認的編碼集是UTF8,而Windows則是ASCII。若是數據編碼的字符集,和你使用Python進行處理時所用的字符集不一樣,則會出現亂碼問題。命令行
另外,我我的的習慣是在Python代碼的頭部加入如下內容,其中第二行聲明瞭使用UTF8字符集。3d
#!/usr/bin/env python# coding:utf8
02 變量
Python中的變量能夠看做是一個個容器,裏面存放着咱們須要使用到的值。
Python對變量名的要求和其餘語言同樣:能夠包括英文、數字以及下劃線,但不能以數字開頭,區分大小寫。固然我推薦,變量名用純英文就很好,而且取一些有意義的名稱,便於本身理解每一個變量的做用。
Python是一門弱類型的語言,在使用變量時無需聲明其類型。Python中的變量包括如下幾類:數值、字符串、列表、元組、字典。
03 數值
數值包括整型和浮點型,分別對應整數和浮點數,後者精度更高。
# 整型a = 1# 浮點型b = 2.1print a, b
04 字符串
字符串也就是咱們常常接觸到的文本,能夠往裏面聽任意長度的內容,用單引號或雙引號括起來。應當注意,中文以及中文符號只能出如今字符串內,若是在下面第三行中使用了中文輸入法的逗號 ,Python將報錯。
c= Hello d = 你好 print c, d
使用 + 能夠拼接兩個字符串。
printc + d
使用 len() 能夠獲得字符串的長度。
printlen( Hello World )
使用切片能夠訪問字符串中的某個字符或某個片斷。
05 列表
列表比如一條隊伍,裏面依次存放着多個變量。列表和字符串相似,但字符串中的每一個元素都是字符,而列表中的每一個元素能夠是任意類型的變量。
使用 len() 能夠得到列表的長度。
printlen(a)
列表元素的按下標訪問和賦值等操做,和字符串都是相似的。
printa[1], a[-1]a[1] =100printa
使用 del 刪除列表中的某個元素。
dela[0]printa
06 元組
元組和列表相似,惟一的不一樣是元組中的元素在初始化以後不能再更改,所以能夠理解成一個只讀的變量。
# 使用()定義一個元組a = (1, 2.1, Hello )# 嘗試修改元組中的元素會報錯a[0] = 100
07 字典
字典是一種極爲重要的變量類型,使用一個key來訪問相應的value,即一種鍵值對的數據形式。
# 使用{}定義一個字典a = {}# 使用key來賦值valuea[ k1 ] =1a[ k2 ] =2.1a[ k3 ] = Hello
因此可以總結出字典和列表的不一樣。列表中的元素是有序對等的,因此是用下標來賦值和訪問,而字典中的元素是無序的,因此是用key來操做相應value。
# 也能夠在定義字典和列表的同時進行賦值li = [1, 2.1, Hello ]di = { k1 : 1, k2 : 2.1, k3 : Hello }
使用 has_key() 判斷字典中是否有某個key。
printdi.has_key( k4 )
若是訪問不存在的key,Python將會報錯。在賦值的時候,若是key已經存在,則會用新的value覆蓋已有的value。
08 註釋
被註釋的代碼將不會運行,能夠看做是寫給本身和其餘程序猿閱讀的一些筆記和說明,提升代碼可讀性。
# 這裏是單行註釋 這裏是不少行註釋
在Sublime中,選中須要註釋的內容,按Ctrl+/便可完成註釋。
09 保留字符
在Python中,有一些字符串具備某些特定功能,如 import 、 class 等。咱們在選擇變量名時,應注意避開這些保留字符。
# 如下變量賦值將報錯import = 1
10 行和縮進
在Python中,代碼塊的邊界不是經過大括號等符號進行顯式劃分,而是經過行的縮進實現的。連續相同縮進水平的代碼處於同一個代碼塊,在使用 for 、 while 、 if 、 try 等語法時須要注意每行代碼的縮進。
11 運算符
運算符的做用是根據已有的變量生成新的變量,主要有如下幾種:
算術運算符:+,-,*,/,%,即加、減、乘、除、取餘
比較運算符:==,!=,>,<,>=,<=,即等於、不等於、大於、小於、大於等於、小於等於
賦值運算符:=,+=,-=,*=,/=,%=,即賦值、加賦值、減賦值、乘賦值、除賦值、取餘賦值
邏輯運算符:and,or,not,即與、或、非
a = 1b = 2print a + bprint a == b# 等價於 a = a + 3a += 3print ac = Trued = Falseprint c and d
12 條件
在寫代碼的時候,每每須要根據某些條件進行判斷,並根據判斷結果執行不一樣的分支代碼。
須要注意的是,但凡出現了 if 和 elif ,就須要加上相應的條件判斷,而且注意代碼的縮進。在Sublime中輸入 if 會出現相應的提示,能夠方便地補全代碼,在換行時光標也會自動跳到合適的縮進處。
13 循環
若是須要打印從1到100的100個數,確定不會傻傻地寫100行print代碼,而是會用循環來處理相似的重複性工做。
14 while 循環
while 循環的思想是,只要某一條件成立,就不斷執行循環體裏的代碼,直到條件再也不成立。
15 for 循環
for 循環的循環次數通常是事先預知的,將一個標誌變量從某個起始值迭代到某個終止值後即結束。
# x從0開始,一直到9結束for x in xrange(0, 10): print x
能夠用 for 循環方便地遍歷列表和字典。
16 循環控制
循環控制主要包括三種: pass 、 continue 、 break 。
pass 表示什麼也不作,只是佔一行代碼的位置;continue 表示當即退出本輪循環,繼續執行後續輪循環;break 表示當即推出循環,後續循環也再也不執行。
17 時間
在處理數據時,不少地方都會涉及到時間,例如數據產生的時間。先介紹一下時間戳的概念,時間戳指的是從1970年1月1日0時0分0秒開始,到某一時刻所經歷的秒數,能夠是整數或者小數,後者的精度更高。
爲何須要時間戳這樣的一個概念?由於對於同一個時刻,不一樣人的描述可能不一樣,畢竟文本的形式變幻無窮,而時間戳使得時間的表達獲得了統一,每一個時刻只能用惟一的整數或浮點數來表示,同時也便於計算時間差這樣的處理。
# 來看一下當前時刻的時間戳吧import timet =time.time()printt,type(t)
關於時間戳,最經常使用的處理即是時間戳和時間文本之間的轉換,例如將 2016年10月1日 10時0分0秒 轉爲時間戳。
其中, %Y 、 %m 等都是時間字段,前者表示四位的年份,後者表示兩位的月份。
文件
文件操做包括向文件中寫內容,以及從文件中讀內容,使用 open() 打開一個文件。
18 異常
Python代碼中可能會出現一些能夠預知的問題,例如字典訪問的key不存在。
若是不加處理,發生問題的時候Python便會報錯並退出,可能以前跑了好久又要重頭再來。所以,咱們須要
19 函數
函數的做用是代碼模塊化,將可重用的代碼封裝成一個函數,這樣在須要使用的時候就只需調用寫好的函數便可,而不用從新寫一遍代碼。
函數的使用包括兩個部分,函數的定義和函數的調用。除此以外,函數能夠有一個或多個參數,參數之間以逗號分開,爲函數的功能提供更多的靈活性。