賦值的特性
賦值語句建立對象引用
變量名在首次賦值時會被創建
變量名在引用前必須先賦值
賦值語句的形式
- 序列賦值
>>> A, B = 1, 2 >>> print (A, B) 1 2
在上面的例子中,寫了兩個元組,只是省略了它們的括號。python把賦值運算符右側元組內的值和左側元組內的變量相互匹配,然后每一次賦一個值
- 高級序列賦值
>>> a, b, c, d = 'spam' >>> print(a, b, c, d) s p a m >>> a, b, c = 'spam' Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: too many values to unpack (expected 3) >>>
通過上面的例子,右邊元素的數目還要是要跟左邊的變量數目相同,不然會產生錯誤
- 擴展解包賦值
>>> a, b = 'spam' Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: too many values to unpack (expected 2) >>> a, *b = 'spam' >>> print(a,b) s ['p', 'a', 'm'] >>> *a, b = 'spam' >>> print(a,b) ['s', 'p', 'a'] m >>> a, *b, c = 'spam' >>> print(a,b,c) s ['p', 'a'] m
一個帶星號的變量名 ,收集了序列中沒有賦值給其他名稱的所有項
- 增強賦值語句

>>> x = 1 >>> x +=1 >>> print(x) 2
增強賦值語句有三個優點:減少輸入;左側只需要計算一次,在完整形式的x = x+1中,x出現兩次,必須執行兩次;優化技術會自動選擇。