1. 程式人生 > 其它 >Python - 賦值運算子

Python - 賦值運算子

前置知識

先了解下變數:

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