Python高階之路 3 2 有趣的賦值操作

2021-09-23 06:17:18 字數 1492 閱讀 6432

賦值操作是再簡單不過了,在前面的章節也多次使用了賦值操作。不過python語言中的賦值操作要有趣得多。例如,可以同時將多個值賦給多個變數。

x,y,z =1,

2,3print

(x,y,z)

1 2 3

在上面的**塊中,將1、2、3分別賦值給了x、y、z三個變數,並輸出這三個變數的值。使用python語言中的這個特性可以很容易實現兩個變數中值的交換。

x,y =20,

30x,y = y,x

print

(x,y)

30 20

x,y,z = 1,2 這種同時將多個值賦給多個變數的操作,等號(=)左右兩側的變數名和變數個數必須相等,否則將丟擲異常。

python語言的這種特性稱為序列解包(sequence unpacking),其實任何乙個迭代(iterable)的物件都支援這一特性。關於迭代物件(列表、集合)的詳細資訊會在以後的章節介紹。

python語言還支援鏈式賦值(chained assignments)和增量賦值(augmented assignments),鏈式賦值是指將同乙個值連續賦給多個變數。

x = y =

20

增量賦值是指將變數自身增加或減小(負增量)指定值的表示式的簡化形式。例如,x = x+2,如果用增量賦值表示式,可以寫成x += 2,也就是將等號(=)右側的x省略,並將加號(+)放到等號(=)左側。例如:

x =

5x +=

2print

(x)

意思就是說,x的值是5,x += 2相當於,x = 5+2的值在賦值給x,最後輸出x變數結果是7。

其實前面介紹的二元運算子都支援增量賦值,例如,x = x * 20可以寫成x *= 20, x = x % 3 可以寫成 x %= 3。

[例 3.2] 本例演示了序列解包、鏈式賦值和增量賦值的使用方法。

x,y,z =1,

2,3#使用序列解包方式進行賦值

print

(x,y,z)

x,y = y,x #利用序列解包交換x和y的值

print

(x,y)

#x,y,z = 1,2 #丟擲異常

#x,y = 1,2,3 #丟擲異常

x = y = z = j =

20#使用鏈式賦值設定x、y、z、j

print

(x,y,z,j)

x *=

2#乘法增量賦值

y %=

3#除法負增量賦值

z -=

1#減法負增量賦值

j +=

1#加法增量賦值

print

(x,y,z,j)

輸出結果:

1 2 3

2 120 20 20 20

40 2 19 21

Python高階之路 一

一 python基礎語法知識 第一天 1 變數 定義 為了儲存 程式運算過程中的一些中間 結果,為了方便日後呼叫,資料修改 命名規則 1 由字母 數字 下劃線組成 2 不能以數字開頭,不能含有特殊的字元和空格 3 不能以保留字命名 4 不建議以中文命名 5 定義的變數名應該有意義 見名知意 6 駝峰...

python高階學習之路

正規表示式 正規表示式 match函式search函式 match物件 findal函式finditer函式 compile函式 sub函式split函式 正則標誌位和模式 beautifulsoup json模組及jsonpath lxml.etree模組 網路爬蟲 爬取頁面 urllib庫 ur...

Python高階之路 7 5 遞迴

遞迴對於初學者來說是乙個難點,初學者可能需要花一些精力在這上面。其實單從編寫遞迴的方式上來看並不難理解。所謂遞迴,就是在函式內部呼叫自身。在執行過程中,python解析器會利用棧 stack 處理遞迴函式返回的資料。所以遞迴函式的乙個必要條件是要有終止條件,否則棧就會溢位。在這裡並不討論遞迴的底層原...