由於Python是跨平臺的,它能夠運行在Windows、Mac和各類Linux/Unix系統上。在Windows上寫Python程序,放到Linux上也是可以運行的。php
要開始學習Python編程,首先就得把Python安裝到你的電腦裏。安裝後,你會獲得Python解釋器(就是負責運行Python程序的),一個命令行交互環境,還有一個簡單的集成開發環境。css
目前,Python有兩個版本,一個是2.x版,一個是3.x版,這兩個版本是不兼容的。因爲3.x版愈來愈普及,咱們的教程將以最新的Python 3.5版本爲基礎。請確保你的電腦上安裝的Python版本是最新的3.5.x,這樣,你才能無痛學習這個教程。python
若是你正在使用Mac,系統是OS X 10.8~10.10,那麼系統自帶的Python版本是2.7。要安裝最新的Python 3.5,有兩個方法:linux
方法一:從Python官網下載Python 3.5的安裝程序(網速慢的同窗請移步國內鏡像),雙擊運行並安裝;macos
方法二:若是安裝了Homebrew,直接經過命令brew install python3
安裝便可。編程
若是你正在使用Linux,那我能夠假定你有Linux系統管理經驗,自行安裝Python 3應該沒有問題,不然,請換回Windows系統。windows
對於大量的目前仍在使用Windows的同窗,若是短時間內沒有打算換Mac,就能夠繼續閱讀如下內容。編程語言
首先,根據你的Windows版本(64位仍是32位)從Python的官方網站下載Python 3.5對應的64位安裝程序或32位安裝程序(網速慢的同窗請移步國內鏡像),而後,運行下載的EXE安裝包:函數
特別要注意勾上Add Python 3.5 to PATH
,而後點「Install Now」便可完成安裝。學習
安裝成功後,打開命令提示符窗口,敲入python後,會出現兩種狀況:
狀況一:
看到上面的畫面,就說明Python安裝成功!
你看到提示符>>>
就表示咱們已經在Python交互式環境中了,能夠輸入任何Python代碼,回車後會馬上獲得執行結果。如今,輸入exit()
並回車,就能夠退出Python交互式環境(直接關掉命令行窗口也能夠)。
狀況二:獲得一個錯誤:
‘python’ 不是內部或外部命令,也不是可運行的程序或批處理文件。
這是由於Windows會根據一個Path
的環境變量設定的路徑去查找python.exe
,若是沒找到,就會報錯。若是在安裝時漏掉了勾選Add Python 3.5 to PATH
,那就要手動把python.exe
所在的路徑添加到Path中。
若是你不知道怎麼修改環境變量,建議把Python安裝程序從新運行一遍,務必記得勾上Add Python 3.5 to PATH
。
如今,瞭解瞭如何啓動和退出Python的交互式環境,咱們就能夠正式開始編寫Python代碼了。
在寫代碼以前,請千萬不要用「複製」-「粘貼」把代碼從頁面粘貼到你本身的電腦上。寫程序也講究一個感受,你須要一個字母一個字母地把代碼本身敲進去,在敲代碼的過程當中,初學者常常會敲錯代碼,因此,你須要仔細地檢查、對照,才能以最快的速度掌握如何寫程序。
在交互式環境的提示符>>>
下,直接輸入代碼,按回車,就能夠馬上獲得代碼執行結果。如今,試試輸入100+200
,看看計算結果是否是300:
>>> 100+200 300
很簡單吧,任何有效的數學計算均可以算出來。
若是要讓Python打印出指定的文字,能夠用print()
函數,而後把但願打印的文字用單引號或者雙引號括起來,但不能混用單引號和雙引號:
>>> print('hello, world') hello, world
這種用單引號或者雙引號括起來的文本在程序中叫字符串,從此咱們還會常常遇到。
最後,用exit()
退出Python,咱們的第一個Python程序完成!惟一的缺憾是沒有保存下來,下次運行時還要再輸入一遍代碼。
請注意區分命令行模式和Python交互模式。
看到相似C:\>
是在Windows提供的命令行模式:
在命令行模式下,能夠執行python
進入Python交互式環境,也能夠執行python hello.py
運行一個.py
文件。
看到>>>
是在Python交互式環境下:
在Python交互式環境下,只能輸入Python代碼並馬上執行。
此外,在命令行模式運行.py
文件和在Python交互式環境下直接運行Python代碼有所不一樣。Python交互式環境會把每一行Python代碼的結果自動打印出來,可是,直接運行Python代碼卻不會。
例如,在Python交互式環境下,輸入:
>>> 100 + 200 + 300 600
直接能夠看到結果600
。
可是,寫一個calc.py
的文件,內容以下:
100 + 200 + 300
而後在命令行模式下執行:
C:\work>python calc.py
發現什麼輸出都沒有。
這是正常的。想要輸出結果,必須本身用print()
打印出來。把calc.py
改造一下:
print(100 + 200 + 300)
再執行,就能夠看到結果:
C:\work>python calc.py 600
Python是一種計算機編程語言。計算機編程語言和咱們平常使用的天然語言有所不一樣,最大的區別就是,天然語言在不一樣的語境下有不一樣的理解,而計算機要根據編程語言執行任務,就必須保證編程語言寫出的程序決不能有歧義,因此,任何一種編程語言都有本身的一套語法,編譯器或者解釋器就是負責把符合語法的程序代碼轉換成CPU可以執行的機器碼,而後執行。Python也不例外。
Python的語法比較簡單,採用縮進方式,寫出來的代碼就像下面的樣子:
# print absolute value of an integer: a = 100 if a >= 0: print(a) else: print(-a)
以#
開頭的語句是註釋,註釋是給人看的,能夠是任意內容,解釋器會忽略掉註釋。其餘每一行都是一個語句,當語句以冒號:
結尾時,縮進的語句視爲代碼塊。
縮進有利有弊。好處是強迫你寫出格式化的代碼,但沒有規定縮進是幾個空格仍是Tab。按照約定俗成的管理,應該始終堅持使用4個空格的縮進。
縮進的另外一個好處是強迫你寫出縮進較少的代碼,你會傾向於把一段很長的代碼拆分紅若干函數,從而獲得縮進較少的代碼。
縮進的壞處就是「複製-粘貼」功能失效了,這是最坑爹的地方。當你重構代碼時,粘貼過去的代碼必須從新檢查縮進是否正確。此外,IDE很難像格式化Java代碼那樣格式化Python代碼。
最後,請務必注意,Python程序是大小寫敏感的,若是寫錯了大小寫,程序會報錯。
計算機顧名思義就是能夠作數學計算的機器,所以,計算機程序理所固然地能夠處理各類數值。可是,計算機能處理的遠不止數值,還能夠處理文本、圖形、音頻、視頻、網頁等各類各樣的數據,不一樣的數據,須要定義不一樣的數據類型。在Python中,可以直接處理的數據類型有如下幾種:
Python能夠處理任意大小的整數,固然包括負整數,在程序中的表示方法和數學上的寫法如出一轍,例如:1
,100
,-8080
,0
,等等。
計算機因爲使用二進制,因此,有時候用十六進制表示整數比較方便,十六進制用0x
前綴和0-9,a-f表示,例如:0xff00
,0xa5b4c3d2
,等等。
浮點數也就是小數,之因此稱爲浮點數,是由於按照科學記數法表示時,一個浮點數的小數點位置是可變的,好比,1.23x109和12.3x108是徹底相等的。浮點數能夠用數學寫法,如1.23
,3.14
,-9.01
,等等。可是對於很大或很小的浮點數,就必須用科學計數法表示,把10用e替代,1.23x109就是1.23e9
,或者12.3e8
,0.000012能夠寫成1.2e-5
,等等。
整數和浮點數在計算機內部存儲的方式是不一樣的,整數運算永遠是精確的(除法難道也是精確的?是的!),而浮點數運算則可能會有四捨五入的偏差。
字符串是以單引號'
或雙引號"
括起來的任意文本,好比'abc'
,"xyz"
等等。請注意,''
或""
自己只是一種表示方式,不是字符串的一部分,所以,字符串'abc'
只有a
,b
,c
這3個字符。若是'
自己也是一個字符,那就能夠用""
括起來,好比"I'm OK"
包含的字符是I
,'
,m
,空格,O
,K
這6個字符。
計算機之因此能作不少自動化的任務,由於它能夠本身作條件判斷。
好比,輸入用戶年齡,根據年齡打印不一樣的內容,在Python程序中,用if
語句實現:
age = 20 if age >= 18: print('your age is', age) print('adult')
根據Python的縮進規則,若是if
語句判斷是True
,就把縮進的兩行print語句執行了,不然,什麼也不作。
也能夠給if
添加一個else
語句,意思是,若是if
判斷是False
,不要執行if
的內容,去把else
執行了:
age = 3 if age >= 18: print('your age is', age) print('adult') else: print('your age is', age) print('teenager')
注意不要少寫了冒號:
。
固然上面的判斷是很粗略的,徹底能夠用elif
作更細緻的判斷:
age = 3 if age >= 18: print('adult') elif age >= 6: print('teenager') else: print('kid')
elif
是else if
的縮寫,徹底能夠有多個elif
,因此if
語句的完整形式就是:
if <條件判斷1>: <執行1> elif <條件判斷2>: <執行2> elif <條件判斷3>: <執行3> else: <執行4>
if
語句執行有個特色,它是從上往下判斷,若是在某個判斷上是True
,把該判斷對應的語句執行後,就忽略掉剩下的elif
和else
,因此,請測試並解釋爲何下面的程序打印的是teenager
:
age = 20 if age >= 6: print('teenager') elif age >= 18: print('adult') else: print('kid')
if
判斷條件還能夠簡寫,好比寫:
if x: print('True')
只要x
是非零數值、非空字符串、非空list等,就判斷爲True
,不然爲False
。
要計算1+2+3,咱們能夠直接寫表達式:
>>> 1 + 2 + 3 6
要計算1+2+3+...+10,勉強也能寫出來。
可是,要計算1+2+3+...+10000,直接寫表達式就不可能了。
爲了讓計算機能計算成千上萬次的重複運算,咱們就須要循環語句。
Python的循環有兩種,一種是for...in循環,依次把list或tuple中的每一個元素迭代出來,看例子:
names = ['Michael', 'Bob', 'Tracy'] for name in names: print(name)
執行這段代碼,會依次打印names
的每個元素:
Michael Bob Tracy
因此for x in ...
循環就是把每一個元素代入變量x
,而後執行縮進塊的語句。
再好比咱們想計算1-10的整數之和,能夠用一個sum
變量作累加:
sum = 0 for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]: sum = sum + x print(sum)
若是要計算1-100的整數之和,從1寫到100有點困難,幸虧Python提供一個range()
函數,能夠生成一個整數序列,再經過list()
函數能夠轉換爲list。好比range(5)
生成的序列是從0開始小於5的整數:
>>> list(range(5)) [0, 1, 2, 3, 4]
range(101)
就能夠生成0-100的整數序列,計算以下:
sum = 0 for x in range(101): sum = sum + x print(sum)
請自行運行上述代碼,看看結果是否是當年高斯同窗心算出的5050。
第二種循環是while循環,只要條件知足,就不斷循環,條件不知足時退出循環。好比咱們要計算100之內全部奇數之和,能夠用while循環實現:
sum = 0 n = 99 while n > 0: sum = sum + n n = n - 2 print(sum)
在循環內部變量n
不斷自減,直到變爲-1
時,再也不知足while條件,循環退出。