1. 程式人生 > >python學習04:Python賦值運算子

python學習04:Python賦值運算子

賦值運算子主要用來為變數(或常量)賦值,在使用時,既可以直接用基本賦值運算子“=”將右側的值賦給左側的變數,右側也可以在進行某些運算後再賦值給左側的變數。

= 基本賦值運算子

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 所示。
 

表 1 Python 常用賦值運算子
運算子 說 明 舉 例 展開形式
= 最基本的賦值運算 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 直譯器會報錯(這些都屬於位運算子,具體用法後續文章會詳細介紹)。

通常情況下,只要能使用擴充套件後的賦值運算子,都推薦使用這種賦值運算