Python進階之路系列一之變量賦值

編程語言 Python 科技 六月的大師兄 2017-05-23

首先,通過一個問題引入本文要講的內容,Python中如何交換兩個變量的值?

不要跟我說你還在用引入中間變量的方法來交換兩個變量的值,那還是我們簡潔強大的Python麼!

Python進階之路系列一之變量賦值

交換兩個變量

Python中的序列賦值給多個變量

任何序列(或是可迭代對象)都可以通過簡單的賦值語句(=)賦值給多個變量。

Tips:變量數必須和序列中元素數一致。

示例代碼如下:

Python進階之路系列一之變量賦值

如果變量數與序列中元素數不一致,則報錯:

Python進階之路系列一之變量賦值

擴展:

實際上,這種給多變量賦值可以用在任何可迭代對象上,而不僅僅是列表或元組。包括字符串,文件對象,迭代器和生成器。

示例代碼如下:

Python進階之路系列一之變量賦值

如果想丟棄一些變量,用下劃線(相當於沒有變量名)接收變量。

示例代碼如下:

Python進階之路系列一之變量賦值

星號(*)表達

用星號(*)表達式可以解決上述序列中元素數與變量數不一致的報錯。星號(*)表達式用來接收不確定個數或任意個數元素的可迭代對象。星號表達式創建的變量永遠都是列表類型。

例如,常見的分數計算中去除第一個和最後一個取平均值。

Python進階之路系列一之變量賦值

星號(*)表達式在字符串操作的時候也會很有用,比如字符串分割:

Python進階之路系列一之變量賦值

上面講過,丟棄一個變量用下劃線。然而,丟棄一些變量,則可以用星號表達式和下劃線結合起來:

Python進階之路系列一之變量賦值

星號(*)表達式語法跟列表處理有很多相似之處。如下,切分列表為前後兩部分:

Python進階之路系列一之變量賦值

如果你夠聰明的話,還能用這種分割語法巧妙地實現遞歸算法。如下:

Python進階之路系列一之變量賦值

最後,由於語言層面的限制,遞歸併不是Python所擅長的。因此,最後那個遞歸演示僅僅是個好奇的探索罷了,對此不要太認真。

相關推薦

推薦中...