Python 中的賦值運算子為開發人員提供工具,使他們能夠高效地為變量賦值。除基本賦值(=)外,Python 還提供了一套複合賦值運算子,將算術運算與賦值結合,使程式碼更簡潔,且提高可讀性。
Python 中的基本賦值運算子為 =
。它用於為變量賦值。使用此運算子時,=
右邊的值將賦給左邊的變量。必須區分 Python 中的賦值運算子(=
)和等於運算子(==
)。前者賦值,而後者檢查等式是否成立。
# 數字賦值
x = 5
print(x)
# 輸出: 5
# 字符串賦值
y = "您好,世界"
print(y)
# 輸出: 您好,世界
# 列表賦值
fruits = ["蘋果", "香蕉", "櫻桃"]
print(fruits)
# 輸出: ['蘋果', '香蕉', '櫻桃']
複合賦值運算子是基礎算術或位運算子與基本賦值運算子的組合。它們在變量的當前值上執行特定操作,然後將結果重新賦給同一變量。這消除了提及變量名兩次的需要,使代碼更為簡潔且更具可讀性。
加法賦值運算子(+=
)會將變量的值增加指定值。不需要寫 x = x + 3
,您可以簡單地寫 x += 3
,這將在 x
的當前值上加3。
# 數字
x = 5
x += 3
print(x)
# 輸出: 8
# 字符串
message = "您好,"
message += "世界!"
print(message)
# 輸出: 您好,世界!
# 列表
fruits = ["蘋果", "香蕉"]
fruits += ["櫻桃"]
print(fruits)
# 輸出: ['蘋果', '香蕉', '櫻桃']
減法賦值運算子(-=
)減少變量的值指定的值。而不是寫 x = x - 4
,您可以使用 x -= 4
,這將從 x
的當前值中減去4。
# 數字
x = 10
x -= 4
print(x)
# 輸出: 6
# 此運算子不適用於字符串和列表。使用它將導致 TypeError。
乘法賦值運算子(*=
)將變量的當前值乘以指定數字。它是寫如 x = x * 2
操作的更簡潔方式。相反,您可以寫 x *= 2
。
# 數字
x = 3
x *= 4
print(x)
# 輸出: 12
# 字符串
repeat_str = "哈"
repeat_str *= 3
print(repeat_str)
# 輸出: 哈哈哈
# 列表
nums = [1, 2]
nums *= 2
print(nums)
# 輸出: [1, 2, 1, 2]
除法賦值運算子(/=
)將變量的當前值除以給定的數字,然後將結果賦回變量。因此,x /= 4
相當於 x = x / 4
。
# 數字
x = 8
x /= 2
print(x)
# 輸出: 4.0
# 此運算子不適用於字符串和列表。使用它將導致 TypeError。
餘數賦值運算符(%=
)計算變數除以給定數字後的餘數,並將這個餘數重新賦值給變數。例如,若你想儲存 x
除以 4 的餘數,你應該使用 x %= 4
。
# 數字
x = 10
x %= 3
print(x)
# 輸出: 1
# 此運算符不適用於字串和清單。使用它會產生TypeError。
乘冪賦值運算符(**=
)會將變數當前的值提升到指定的數字。它是 x = x ** 2
的簡寫,可以直接寫成 x **= 2
。
# 數字
x = 5
x **= 2
print(x)
# 輸出: 25
# 此運算符不適用於字串和清單。使用它會產生TypeError。
整除賦值運算符(//=
)會將變數的值除以指定的數字,將結果四捨五入到最接近的整數,然後再賦值給變數。因此,x //= 3
是 x = x // 3
的更簡潔的表示方法。
# 數字
x = 13
x //= 4
print(x)
# 輸出: 3
# 此運算符不適用於字串和清單。使用它會產生TypeError。
使用複合賦值運算符的主要優點是簡化代碼並增強清晰度。它們提供了一種更簡潔的方式來同時執行操作和賦值。
需要注意的是,並不是所有的賦值運算符都適用於所有數據類型。有些在使用與不兼容的類型時會導致TypeError或其他異常。從範例中可以看到,加法賦值運算符適用於數字、字串和清單,但減法賦值運算符僅適用於數字。了解並測試每個運算符與各種數據類型的行為是避免代碼中意外錯誤的關鍵。
+=
、-=
和 *=
。=
)為變數分配值。複合賦值運算符在一個步驟中執行操作和賦值。[Python] 通過各種實例深入理解位元運算符 |
---|
[Python] 通過各種實例深入理解關係運算符 |
[Python] 解決 'zsh: command not found: python' 錯誤的方法 |
[Python] 通過各種實例深入理解賦值運算符 |
[Python] 通過各種實例深入理解算術運算符 |
CloneCoding
創新從一行代碼開始!