在Python 3.8中,引入了海象运算符:=。它是一个赋值运算符。
该运算符的正式名称为赋值表达式运算符。因为符号类似于海象的眼睛和象牙,也被称为海象运算符。
与传统赋值运算符“=”不同,海象运算符可以赋值并同时返回变量的值。
海象运算符的语法格式是:
(variable_name := expression or value)
示例:
#使用“=”,变量赋值后,调用变量,返回变量的值
>>> a=123
>>> a
123
#使用“:=”,变量赋值并直接返回变量的值
>>> (a:=123)
123
特表注意,海象运算符表达式两边的括号“()”是必须有的。
海象运算符很有用,允许我们在许多情况下简化代码。可以在代码中将值赋值给可能尚不存在的变量。
我们再看几个示例,使用海象运算符简化代码。
a = [1,2,3]
d = {
1:len(a),
2:sum(a),
3: sum(a)/len(a)
}
print(d)
输出:
{1: 3, 2: 6, 3: 2.0}
a = [1,2,3]
d = {
1:(n := len(a)),
2:(s := sum(a)),
3:(n/s)
}
print(d)
输出:
{1: 3, 2: 6, 3: 0.5}
上面的示例中,我们可以直接使用变量n、s,不需要再次调用len(a)、sum(a)。
#普通赋值
pwd=input("请输入:")
if pwd=="123":
print("输入正确!")
#海象运算符
if (pwd:=input("请输入:"))=="123":
print("输入正确!")
海象运算符,可以简化代码,并使代码更高效。但是,也可能会降低代码的可读性,你认为海象运算符值得用吗?