Python := 赋值表达式(海象运算符)

:= 赋值表达式是 Python3.8 新引入的语法,因为很像海象的眼睛和长牙,也叫做 海象运算符

赋值表达式 通过 := (海象运算符)给变量赋值,并让这个值成为这条表达式的结果

用在 if/else 分支

常规例子

1
2
3
4
5
6
7
8
9
10
11
fruit_quantity = {
'apple': 7,
'banana': 5
}

fruit_name = 'orange'
count = fruit_quantity.get(fruit_name, 0)
if count:
print(f'水果:{fruit_name}\n数量:{count}')
else:
print(f'{fruit_name} 该补货啦')

:= 赋值表达式

1
2
3
4
5
6
7
8
9
10
fruit_quantity = {
'apple': 7,
'banana': 5
}

fruit_name = 'orange'
if count := fruit_quantity.get(fruit_name, 0):
print(f'水果:{fruit_name}\n数量:{count}')
else:
print(f'{fruit_name} 该补货啦')

新代码读起来清晰很多,因为明确了 count 变量只与 if 块有关

用在 while 循环

常规例子

1
2
3
4
count = 5
while count:
print(f'count:{count}')
count -= 1

:= 赋值表达式

1
2
3
count = 5
while count := count-1:
print(f'count:{count}')

其他例子可以去官方看看