&=
x = 6 # 二進位: 110
x &= 3 # 二進位: 011
print(x) # 輸出: 2
為什麼結果是 2?
6的二進位:1103的二進位:011- 做 AND (
&) → 逐位比較,只有 1 AND 1 = 1,其他為 0
110 (6)
& 011 (3)
------
010 (2)
x &= y 等同於 x = x & y,就是把 x 和 y 做 bitwise AND,然後存回 x。同理可知,可以推得 |= 的邏輯了~~
<<=
x = 6 # 二進位: 110
y = x << 2 # 左移 2 位
print(y) # 輸出: 24
x = 6 = 0000 0110 (二進位)
左移2位 → 0001 1000 = 24
所以6 << 2 = 24
同理可知,可以推得>>=的邏輯了~~
海象運算子 :=(Python 3.8+)
print(x := 3)
# 等同於
x = 3
print(x)
- 一邊賦值,一邊使用該值。
- 常用於
while或if,避免重複寫變數。
# 沒用 := 需要兩次寫 len()
n = len(data)
if n > 10:
print(n)
# 用 :=
if (n := len(data)) > 10:
print(n)

















