首頁/ 娛樂/ 正文

Python的簡潔語法:大道至簡,懶出天際

Python的簡潔語法:大道至簡,懶出天際

大家好,歡迎收看思路實驗室出品的Python入門教程,我是室長。

Python的一大突出特點就是語法簡潔流暢,舉重若輕。甚至有一個專門的詞語來形容這種程式碼風格,叫Pythonic,翻譯成中文就是“這很Python”。

雖然我們之前已經學習了Python的基本語法,但和Pythonic之間還是有一些距離的。那我們這一期就來了解一些Python中的簡潔語法,給你的程式碼減減肥,讓它更加短小精悍,更Pythonic。

1.神奇的元組

有時候我們想同時給多個變數賦值時其實沒有必要一行一個等號,可以使用元組同時給多個變數賦值:

Python的簡潔語法:大道至簡,懶出天際

Python的簡潔語法:大道至簡,懶出天際

但其實代表元組的括號也可以不用:

Python的簡潔語法:大道至簡,懶出天際

Python的簡潔語法:大道至簡,懶出天際

它等價於:

Python的簡潔語法:大道至簡,懶出天際

對於一個函式,如果我們想返回多個值,也可以用元組的形式,帶不帶括號都可以:

Python的簡潔語法:大道至簡,懶出天際

Python的簡潔語法:大道至簡,懶出天際

有一個非常經典的交換變數值的操作:

Python的簡潔語法:大道至簡,懶出天際

Python的簡潔語法:大道至簡,懶出天際

2.連等式

在給多個變數賦值時如果希望給多個變數賦予同一個值,我們可以使用連等式:

Python的簡潔語法:大道至簡,懶出天際

Python的簡潔語法:大道至簡,懶出天際

但是對於連等式有些需要注意的地方。雖然說賦值是把等號右邊的值賦給了等號左邊的變數,但連等式不是從右向左一步步傳導過來的。也就是說a = b = 1 代表的不是b = 1 然後 a = b,而是a = 1 然後b = 1:

Python的簡潔語法:大道至簡,懶出天際

此外這裡的賦值賦的仍然是資料的記憶體地址,所以如果連等式賦值為列表的話,所有變數指向的是同一個列表。

Python的簡潔語法:大道至簡,懶出天際

Python的簡潔語法:大道至簡,懶出天際

3.鏈式比較

在使用條件判斷語句時我們往往會需要判斷某個值是否在某個區間以內,即大於某個數同時又小於某個數。拆成兩個條件寫就非常的囉嗦了,我們可以直接使用鏈式比較來把多個條件寫入一個式子裡:

Python的簡潔語法:大道至簡,懶出天際

Python的簡潔語法:大道至簡,懶出天際

4.列表推導式

假設你有一個列表,裡邊都是數字。你想把裡邊的所有數字乘以2並存到一個新的列表裡,該怎麼去弄?用for迴圈+append方法嗎?

Python的簡潔語法:大道至簡,懶出天際

肉眼可見的麻煩。這時候我們可以使用列表推導式,它像是一種寫在列表裡的for迴圈:

Python的簡潔語法:大道至簡,懶出天際

Python的簡潔語法:大道至簡,懶出天際

此外,上邊的列表推導式還可以加上一個if來實現篩選功能。我們來篩選一下所有的奇數並將其乘以2放入新列表中:

Python的簡潔語法:大道至簡,懶出天際

Python的簡潔語法:大道至簡,懶出天際

5.lambda函式

我們在

這一期

曾經提前偷偷地使用過一次lambda函式,但一直沒有進行具體的講解。有時候我們只需要對資料進行比較簡單的處理,專門用def語句定義一個函式實在是不值當的。這時候我們就可以使用lambda函式。雖說是lambda函式,但它實際上是一種定義函式的方法。這裡我們舉一個求兩個數的平均值的例子:

Python的簡潔語法:大道至簡,懶出天際

Python的簡潔語法:大道至簡,懶出天際

這裡lambda語句定義了一個函式並把函式賦值給了變數f。lambda和冒號之間的a和b是函式的兩個引數,而冒號後邊的則是函式的返回值。它等價於:

Python的簡潔語法:大道至簡,懶出天際

有些函式的引數本身就是函式,那麼這個引數位我們就可以直接使用lambda語句生成函式傳遞進去,都不用費盡心思給函式起個名。

需要注意的是lambda函式的返回值不能像return語句一樣設定為脫掉括號的元組。所以如果想讓lambda函式返回多個值的話還是需要用括號把返回值括起來,形成一個帶括號的元組。

6.一行程式碼實現條件賦值

很多時候我們需要根據條件去對變數賦值。如果判斷條件比較多的話還是得老老實實該怎麼來怎麼來,但如果只有兩種情況的話我們就可以把整個從判斷到賦值的過程寫到一行裡邊:

Python的簡潔語法:大道至簡,懶出天際

Python的簡潔語法:大道至簡,懶出天際

它等價於:

Python的簡潔語法:大道至簡,懶出天際

這一期我們瞭解了一些讓程式碼更加流暢輕盈,更加Pythonic的語法。這些語法的關鍵在於舉重若輕,這也意味著雖然程式設計是在跟機器溝通,但我們作為程式設計的人不應該變得機械。除了這些語法以外,Python還有一個重要的功能,讓我們在程式設計的時候可以更懶更輕鬆,請關注下期:

Python的裝飾器:奇怪的符號增加了

。如果這篇文章對你有所幫助,希望能幫室長點個

贊和在看

,你的鼓勵是室長進步的動力!

相關文章

頂部