賦值運算符主要用來為變量(或常量)賦值,在使用時,既可以直接用基本賦值運算符“=”將右側的值賦給左側的變量,右側也可以在進行某些運算后再賦值給左側的變量。
= 基本賦值運算符
Python 使用“=”作為賦值運算符,常用於將表達式的值賦給另一個變量。例如如下代碼:
- # 為變量st賦值為Python
- st = "Python"
- # 為變量pi賦值為3.14
- pi = 3.14
- # 為變量visited賦值為True
- visited = True
除此之外,也可使用賦值運算利將一個變量的值賦給另一個變量。例如,如下代碼也是正確的:
- # 將變量st的值賦給st2
- st2 = st
- print(st2)
值得指出的是,Python 的賦值表達式是有值的,賦值表達式的值就是被賦的值,因此 Python 支持連續賦值。例如,如下代碼也是正確的:
a = b = c = 20
上面程序將 c=20。這個表達式的值賦給變量 b,由於賦值表達式本身也有值,就是被賦的值,因此 c=20 這個表達式的值就是 20,故 b 也被賦值為 20;依此類推,變量 a 也被賦值為 20。
賦值運算符還可用於將表達式的值賦給變量。例如,如下代碼也是正確的:
- d1 = 12.34
- # 將表達式的值賦給d2
- d2 = d1 + 5
- # 輸出d2的值
- print("d2的值為:%g" % d2 ) # 17.34
需要初學者特別注意的是,= 和 == 的含義完全不同,前者是賦值號,后者是等號,千萬不要混淆。
擴展后的賦值運算符
= 賦值運算符還可與其他運算符(算術運算符、位運算符等)結合,成為功能更強大的賦值運算符,如表 1 所示。
運算符 | 說 明 | 舉 例 | 展開形式 |
= | 最基本的賦值運算 | x = y | x = y |
+= | 加賦值 | x += y | x = x + y |
-= | 減賦值 | x -= y | x = x - y |
*= | 乘賦值 | x *= y | x = x * y |
/= | 除賦值 | x /= y | x = x / y |
%= | 取余數賦值 | x %= y | x = x % y |
**= | 冪賦值 | x **= y | x = x ** y |
//= | 取整數賦值 | x //= y | x = x // y |
&= | 按位與賦值 | x &= y | x = x & y |
|= | 按位或賦值 | x |= y | x = x | y |
^= | 按位異或賦值 | x ^= y | x = x ^ y |
<<= | 左移賦值 | x <<= y | x = x << y,這里的 y 指的是左移的位數 |
>>= | 右移賦值 | x >>= y | x = x >> y,這里的 y 指的是右移的位數 |
這里舉幾個簡單的例子:
- a = 1
- b = 2
- a += b
- print("a+b=",a)#1+2=3
- a -= b
- print("a-b=",a)#3-2=1
- a *= b
- print("a*b=",a)#1*2=2
- a /= b
- print("a/b=",a)#2/2=1.0
- a %= b
- print("a%b=",a)#1%2=1.0
- c = 0
- d = 2
- c &= d
- print("c&d=",c)#0&2=0
- c |= d
- print("c|d=",c)#0|2=2
運行結果為:
a+b= 3
a-b= 1
a*b= 2
a/b= 1.0
a%b= 1.0
c&d= 0
c|d= 2
需要注意的是,程序中 a 的值通過 /= 和 %= 運算后,類型隱式改變成了浮點型,而浮點數是不能進行 &、|、^、<< 和 >> 運算的,否則 Python 解釋器會報錯(這些都屬於位運算符,具體用法后續文章會詳細介紹)。
通常情況下,只要能使用擴展后的賦值運算符,都推薦使用這種賦值運算符。