Python基礎:分分鐘入門

cptbtptp發表於2016-07-02

最近公司BOSS抽風,要公司的市場/產品什麼的學Python,特記錄一篇Python基礎內容,供有一點基礎的同事們快速入門。

Python和Pythonic

Python是一門計算機語言(這不是廢話麼),簡單易學,上手容易,深入有一定困難。為了逼格,還是給你們堆一些名詞吧:動態語言、解釋型、網路爬蟲、資料處理、機器學習、Web開發、等等等等。Python目前分為2.x和3.x兩個版本,與其它語言不一樣的是,它的這兩個版本是不相容的,雖然會其中一個就容易上手另一個,但是鑑於公司目前幾乎全是用Python2.7,建議同事們也可以從2.x版本開始,如果沒有歷史遺留問題,建議初學者直接上手Python3。

Pythonic指的是按照Python推薦的規範,乾淨美觀、可讀性強的逼格滿滿到程式碼風格,比如多使用Python內建的資料結構,不要重複造輪子。簡單來講,你可以在Python解釋環境裡輸入import this瞭解一下Python之禪。Python的程式碼風格上,如果團隊有自己的風格則按照自己的風格,否則,比較推薦的是PEP8或Google Code Style。關於PEP8規範,請點選這裡


開發環境搭建

在常見的*inx系統上,預設都安裝了Python直譯器,你可以直接在終端輸入python進入預設的環境。在Windows系統上,你需要去Python官網下載Python的安裝包,安裝之後可以在“所有程式”中找到“IDLE”,也可以在cmd中通過輸入python進入直譯器環境。

對於Python常用的IDE(整合開發環境),推薦使用PyCharm,如果土豪請購買正版,如果不是土豪又有情懷,請使用社群版(免費),如果既不土豪又沒有情懷,就用盜版吧(不推薦)。

Python之所以非常流行,離不開它千千萬萬的第三方庫,你可以將第三方庫理解為我寫了一個牛X的功能,釋出出來之後你可以直接使用。安裝第三方庫的話,推薦使用pip,在Ubuntu上,你可以通過apt-get install python-pip安裝。


hello, world.

常見情況下,Python程式碼可以通過兩種形式執行:一是直接在剛才所講的解釋環境下(輸入python命令後進入的地方)一行一行的執行,或者也可以儲存到一個.py的檔案中,在終端輸入python 檔名來執行。比如新建一個test.py,檔案內容為print 'hello, world.',在終端輸入python test.py,即可輸出hello, world.

螢幕快照 2015-11-28 14.09.17.png

注意⚠️:Python中沒有使用花括號{}來表示程式碼間的層級關係而是使用縮排,這樣的好處是在語法層面上限制了不好的程式碼風格,但是初學者容易混淆。


變數、基礎資料型別

變數

Python中變數不需要宣告,你可以通過直接賦值的方式使用變數:

在Python中,你可以在給一個變數賦值為一種型別之後重新為其賦值為新的型別(如上面程式碼第1、4行)。

基礎資料型別

Python中的數字有:整型、長整型、浮點型、布林型、複數。

  • 整形int,常見的整數(正數/負數/0),通過sys.maxint即可檢視當前平臺上最大的整型的值。
  • 長整型long,比整型最大的值還大或者比整型最小的值還小的整數。注意:Python中長整型沒有大小限制,你的記憶體有多大,它就能表示多大。
  • 浮點型float,即小數。
  • 布林型bool,常見形式為True, False,表示邏輯真和邏輯假,其實背後的實現是數字1和0.
  • 複數complex,Python是為數不多語法層面上支援複數的語言,表現為形如1+2j的形式。可以直接支援兩個複數的運算。

Python中的所有資料型別都是物件。你可以通過type()函式檢視一個變數的型別。
Python中字串有4種表現形式:單引號、雙引號、三引號:

其中,第3/4種字串表現形式都是三引號引起來的。如果在字串的引號之前加上一個u,則表示這是一個unicode字串,如果加上r,則表示這是一個原始字串 ,這兩種型別,對於初學者暫不討論。值得注意的是,Python中沒有C-Like語言中的字元型別


運算子、控制語句

運算子

Python中沒有類似於C/C++/Java的自增自減運算子,因為在Python中,數字是一種不可變型別(immutable),對數字的操作都會產生新的物件而不是修改原來的物件。但是i = i + 1一樣可以寫為i += 1
注意:Python2.5以後的除法為地板除,即5/2=2而不是5/2 = 2.5
Python常見的邏輯運算子為:

  • !=, <>:不等於,表示兩邊的值不相等,推薦使用前一種。1 != 2
  • ==:等於,表示兩邊的值相等。2 == 2
  • and:邏輯與,如果兩邊的值都為True則整個值為True,反之為False。1==1 and 2==2
  • or:邏輯或,如果兩邊有一個值True則整個值為True,反之為False。1==2 or 2==2
  • not:邏輯非,如果值為True,則結果為False。not 2==1

控制語句

條件語句
Python中的條件語句只有if-elif-else,沒有switch-case,但是有經驗的開發者通常使用map這一結構來達到比switch-case更加優雅,更加Pythonic的實現,這個後續再說。

elif類似於其它語言中的else if

迴圈語句
Python中有兩種方式表達迴圈語句:

while 迴圈:

for迴圈:

值得注意的是Python中沒有C-Like語言裡的for(int i=0; i<10; i++)的語法,不過可以使用xrange或者range函式實現同樣的效果。前一個函式返回一個生成器,後一個函式返回list,一般推薦使用前一個,至於這兩個函式的異同,後面有時間細聊。


集合

Python中常見的集合型別有:list,tuple,set,dict。

list

list表達的是一列資料的集合,列表中的元素可以增加、刪除、查詢等操作:

tuple

tuple類似於list,同樣表示一組資料的集合,不同的是,tuple是防寫的,即:tuple不可以對其元素做任何修改操作(新增、刪除等):

set

set表示一個不重複元素的集合,值得注意的是:set是無序的

dict

dict表示一組資料的對應關係,與set一樣,dict是無序的(你可以通過collections中的OrderDict來達到有序)。同時,對於初學者,dict與set的宣告方式容易混淆:


函式(初步)

在Python中宣告函式的方式如下:

通其它語言一樣,你可以在函式中通過return返回值。不同的是,Python中函式可以有多個返回值,比如下面的函式,返回了兩個數的和以及差:

其實這裡並不是真的返回了兩個值,而是將返回值組裝成一個tuple再返回。


小結

Python中最最最基礎的部分差不多就是這些了,後面會繼續分享一些Pythonic的Python程式碼寫法。

打賞支援我寫出更多好文章,謝謝!

打賞作者

打賞支援我寫出更多好文章,謝謝!

Python基礎:分分鐘入門

相關文章