首先,通過一個問題引入本文要講的內容,Python中如何交換兩個變量的值?
不要跟我說你還在用引入中間變量的方法來交換兩個變量的值,那還是我們簡潔強大的Python麼!
Python中的序列賦值給多個變量
任何序列(或是可迭代對象)都可以通過簡單的賦值語句(=)賦值給多個變量。
Tips:變量數必須和序列中元素數一致。
示例代碼如下:
如果變量數與序列中元素數不一致,則報錯:
擴展:
實際上,這種給多變量賦值可以用在任何可迭代對象上,而不僅僅是列表或元組。包括字符串,文件對象,迭代器和生成器。
示例代碼如下:
如果想丟棄一些變量,用下劃線(相當於沒有變量名)接收變量。
示例代碼如下:
星號(*)表達
用星號(*)表達式可以解決上述序列中元素數與變量數不一致的報錯。星號(*)表達式用來接收不確定個數或任意個數元素的可迭代對象。星號表達式創建的變量永遠都是列表類型。
例如,常見的分數計算中去除第一個和最後一個取平均值。
星號(*)表達式在字符串操作的時候也會很有用,比如字符串分割:
上面講過,丟棄一個變量用下劃線。然而,丟棄一些變量,則可以用星號表達式和下劃線結合起來:
星號(*)表達式語法跟列表處理有很多相似之處。如下,切分列表為前後兩部分:
如果你夠聰明的話,還能用這種分割語法巧妙地實現遞歸算法。如下:
最後,由於語言層面的限制,遞歸併不是Python所擅長的。因此,最後那個遞歸演示僅僅是個好奇的探索罷了,對此不要太認真。
相關推薦
'Python基礎學習教程系列講解——try_except異常處理機制'
"在Python編程中不可避免的會出現錯誤,在調試階段出現語法之類的錯誤時,Pycharm會在Debug窗口提示錯誤,但是程序在運行時由於內部隱含的問題而引起錯誤,會導致程序終止執行。比如以下例程中,使用urllib庫打開URL時由於網絡問題而發生了錯誤:import ur...
'Python全棧之路系列之元組數據類型'
"元組(tuple)和列表的唯一區別就是列表可以更改,元組不可以更改,其他功能與列表一樣創建元組的兩種方法第一種ages = (11, 22, 33, 44, 55)第二種ages = tuple((11, 22, 33, 44, 55))如果元祖內只有一個元素,那麼需要加...
Python
2019-09-09
'python面試題之@classmethod, @staticmethod, @property?'
"回答背景知識這些都是裝飾器(decorator)。裝飾器是一種特殊的函數,要麼接受函數作為輸入參數,並返回一個函數,要麼接受一個類作為輸入參數,並返回一個類。@標記是語法糖(syntactic sugar),可以讓你以簡單易讀得方式裝飾目標對象。@my_decorator...
'如何將一個 Python 函數進行模塊化封裝'
"使用 Python 函數來最大程度地減少重複任務編碼工作量。-- Seth Kenlon(作者)你是否對函數、類、方法、庫和模塊等花哨的編程術語感到困惑?你是否在與變量作用域鬥爭?無論你是自學成才的還是經過正式培訓的程序員,代碼的模塊化都會令人困惑。但是類和庫鼓勵模塊化代...
推薦中...