海象运算符
海象运算符,即 := ,在 PEP 572 中被提出,并在 Python3.8 版本中发布。
海象运算符的英文原名叫Assignment Expresions,即赋值表达式。
它由一个冒号:和一个等号=组成,即:=。而它被称作walrus operator(海象运算符),是因为它长得像一只海象。
语法格式及解释:
variable := expression
#其中,expression 是一个任意的表达式,而 variable 则是一个变量名
它的作用是将表达式的值赋值给变量,然后返回表达式的值。
在某些情况下,使用海象运算符可以使代码更加简洁、易读和高效
#不使用海象运算符
a = 5
print(a) # 5
#使用海象运算符
print(a := 5) # 5
#有了海象运算符,他们可以被合并为一行
#ps:海象运算符不能当作直接赋值使用,比如
a := 5 # 会报错
#海象运算符有两步组成1.赋值 2.使用,a:=5 只进行了赋值,并未使用
用法示例
if语句
#不使用海象运算符
n = len(a)
if n > 10:
print(f"List is too long ({n} elements, expected <= 10)")
#使用海象运算符
if (n := len(a)) > 10:
print(f"List is too long ({n} elements, expected <= 10)")
while语句
#不使用海象运算符
line = f.readline()
while line != "":
print(line, end="")
line = f.readline()
#使用海象运算符
while (line := f.readline()) != "":
print(line, end="")
三元表达式
#不使用海象运算符
money, spend = 2000, 1500
money = money - spend
print(f"你还有{money}元" if money > 1000 else f"你只有{money}元了")
#使用海象运算符
money, spend = 2000, 1500
print(f"你还有{money}元" if (money := money - spend) > 1000 else "你只有{money}元了")
综上所述,海象运算符可以用于一些需要表达式的地方,比如if语句、while循环、三元表达式等。
它一定程度上减少了代码的行数,使代码更加简洁,甚至在某些情况下可以提高程序的效率;但通常情况下,使用海象运算符会降低代码的可读性,使代码更难以理解。
因此,使用海象运算符时,应该考虑清楚,是否真的需要使用它。
标签:海象,money,运算符,表达式,print,line,3.8 From: https://www.cnblogs.com/LiTaooooo/p/18008570