1. 程式人生 > >少說話多寫程式碼之Python學習022——賦值語句01(序列解包)

少說話多寫程式碼之Python學習022——賦值語句01(序列解包)

賦值語句在不同的語言中都有各自獨特的表現,以及好玩的用法。剛開始學習程式設計時學習C語言,比如考試題總會讓你分析賦值了一個指標呢還是一個值呢,到了堆呢還是到了棧,額額額。不過在Python裡我們就別深究堆疊的問題啦,我們看看它的一些特別的用法吧。
Python裡可以多個賦值同時進行,
 

a,b,c,d='哼','呵','哈','嘿'
print(a,b,c,d)

輸出

哼 呵 哈 嘿

還可以同時交換兩個值,

a,b=c,d
print(a,b)

輸出

哈 嘿

在這裡有個專業的叫法—序列解包或者遞迴解包,說的是將多個值的序列解開,然後放到變數的序列中。用程式碼標識就是這樣的,

values='持國天王','廣目天王','多聞天王','增長天王'
print(values)

h,i,j,k=values
print(h,i,j,k)

輸出

('持國天王', '廣目天王', '多聞天王', '增長天王')
持國天王 廣目天王 多聞天王 增長天王

就是把值values中的序列解開,依次放到了h,i,j,k四個變數中去。

當函式返回一個序列或者物件時,就可以用到。比如刪除一個字典中的一項,並將這項返回,如下

person ={'name':'託塔李天王','job':'陳塘關總兵'}
key,value = person.popitem()
print(key)
print(value)

輸出

job
陳塘關總兵

這樣將返回的元組,賦值給了兩個變數。

當然了序列解包也有要求的,那就是左邊的變數和右邊的值數量必須一致,不然會報異常。不管是僧多粥少或者僧少粥多都是不行的。比如下面的程式碼是錯誤的,
 

#w,x,y= 1,3
#w,x,y=1,2,3,4

工程程式碼下載:https://download.csdn.net/download/yysyangyangyangshan/10714922