省流:要将运算和判断放在一起使用时,用来减少代码重复
海象运算符(Walrus Operator)是Python 3.8引入的一种新语法,其正式名称为“赋值表达式”(Assignment Expressions)。它的符号是:=
,形似海象的眼睛和象牙,因此得名“海象运算符”。
用途
海象运算符的主要用途是在表达式中同时进行赋值和使用该值。这在某些情况下可以简化代码,减少重复计算。
语法
(variable := expression)
在这个表达式中,variable
会被赋值为expression
的结果,并且整个表达式的值也是expression
的结果。
示例
-
在条件语句中使用:
if (n := len(my_list) > 10): print(f"List is too long ({n} elements, expected <= 10)")
在例子1中,
n
被赋值为len(my_list)
的结果,并且这个结果被用于条件判断。就相当于n=len(mylist) if(n>10) { #任意内容 }
-
在循环中使用:
while ((line := input())!= "quit"): print(f"You entered: {line}")
在这个例子中,
line
被赋值为input()
的结果,并且这个结果被用于循环条件判断。 - 在列表推导式中使用:
在这个例子中,我们首先将输入的字符串转换为整数,然后进行条件判断。scores = [score for score in (int(s) for s in input().split()) / if score > 50]
- 对于 例3的解释:
input().split() 将输入的字符串按空格分割成多个子字符串。(int(s) for s in input().split()) 是一个生成器表达式,将每个子字符串转换为整数。[score for score in ... if score > 50] 是一个列表推导式,遍历生成器表达式中的每个整数,并只保留大于50的值。
注意事项
- 海象运算符的使用需要谨慎,过度使用可能会导致代码可读性下降。
- 它主要用于减少代码重复,提高代码的简洁性。
哇奥