Python - 賦值運算子
阿新 • • 發佈:2021-07-31
前置知識
先了解下變數:
https://www.cnblogs.com/poloyy/p/15042257.html
再瞭解下算術運算子:
https://www.cnblogs.com/poloyy/p/15084527.html
賦值運算子
= | 賦值 |
-= | 減法賦值 |
=+ | 加法賦值 |
*= | 乘法賦值 |
/= | 除法賦值 |
%= | 求模賦值 |
**= | 乘方賦值 |
//= | 整數除賦值 |
Python 中不同資料型別的賦值
單個變數賦值單個物件
a = 1 b = 1.0 c = "字串" d = [1, 2, 3, 4] e = (1, 2, 3, 4) f = {1, 2, 3, 4} g= {1: 1, 2: 2}
多個變數同時賦值多個物件
python 的特性,可以一行程式碼,同時給多個變數賦值
# 多變數 a, b = 1, 2 print(a, b) a, b, c, d = 1, 2.0, True, "字串" print(a, b, c, d) e, f, g, h = [1, 2, 3, 4], (1, 2, 3, 4), {1, 2, 3, 4}, {1: 1, 2: 2} print(e, f, g, h) # 輸出結果 1 2 1 2.0 True 字串 [1, 2, 3, 4] (1, 2, 3, 4) {1, 2, 3, 4} {1: 1, 2: 2}
單個變數賦值多個物件
這是 Python 元組的特性,單個變數使用 = 時,元組在右邊的時候可以不用加 ( ),也稱為元組打包
# 單個變數 a = 1, True, "字串" print(a, type(a)) # 輸出結果 (1, True, '字串') <class 'tuple'>
多個變數賦值單個序列物件
- 這也叫序列解包,因為解包操作的 = 右側可以是任何序列
- 序列解包要求等號左側的變數數與右側序列裡所含的元素數相同
a, b, c = (1, 2, 3) print(a, b, c) a, b, c = [1, 2, 3] print(a, b, c) a, b, c= {1, 2, 3} print(a, b, c) # 輸出結果 1 2 3 1 2 3 1 2 3
總結
多重賦值其實就是元組打包和序列解包的組合
+=
等價寫法
a +=1
a = a+1
其他賦值運算子同理,不再重複寫
栗子
# += a = 1 a += 1 print(a) a +=2.0 print(a) # 輸出結果 2 4.0
-=
# -= a = 1 a -= 1 print(a) a -= 1.0 print(a) # 輸出結果 0 -1.0
*=
# *= a = 1 a *= 2 print(a) a *= 2.0 print(a) # 輸出結果 2 4.0
**=
# **= a = 2 a **= 2 print(a) a **= 2.0 print(a) # 輸出結果 4 16.0
/=
# /= a = 2 a /= 2 print(a) a /= 2.0 print(a) # 輸出結果 1.0 0.5
//=
# //= a = 5 a //= 2 print(a) a //= 2.0 print(a) # 輸出結果 2 1.0
%=
# %= a = 100 a %= 8 print(a) a %= 3.0 print(a) # 輸出結果 4 1.0