学堂 学堂 学堂公众号手机端

Python海象运算符怎么理解,语法及基本应用是什么

lewis 6年前 (2019-09-01) 阅读数 7 #技术
这篇文章给大家介绍了“Python海象运算符怎么理解,语法及基本应用是什么”的相关知识,讲解详细,步骤过程清晰,有一定的借鉴学习价值,因此分享给大家做个参考,感兴趣的朋友接下来一起跟随小编看看吧。



前言

大家好,我是闲欢,你们的老相识呀!

海象可谓是最大的哺乳动物了,有人称它是北半球的“土著”居民。它圆头,短而阔的嘴巴,粗大的鼻子,上犬齿形成长达40厘米-90厘米的獠牙,每只4公斤以上。雄海象体长可达4米,重2吨。海象喜群居,数千头簇拥在一起。

海象两眼眯得像缺乏活力的老头子,它们爱睡懒觉,一生中大多时间是躺在冰上度过的,还能在水里睡觉,真是牛出天际。

作为996的卷农,我非常羡慕它们的生活,好想跟他们一样躺平。

好了,言归正传,咱们继续卷吧!今天给大家带来了一个以海象命名的运算符——海象运算符。

Python 海象运算符是在 PEP 572 中提出,并在 Python3.8 版本并入和发布。

海象运算符的英文原名叫 Assignment Expresions ,即 赋值表达式。海象表达式由一个 : 和 一个 = 组成,即:=。我们一般称作 walrus operator(海象运算符),因为它看起来就是一个海象旋转 90° 而成。作者还是很有想象力的,这都能联系起来!

语法

海象运算符的语法格式是:

(variable_name := expression)

这是一个新的赋值运算符,跟我们常见的=类似,一个变量名后面跟一个表达式。

用法

用于 if-else 条件表达式

常规写法:

a=5
ifa>1:
print('dosth!')

升级写法:

ifa:=5>1:
print('dosth!')

用于 while 循环

常规写法:

n=3
whilen:
print('dosth!')
n-=1

升级写法:

n=3
while(n:=n-1)+1:
print('dosth!')

这里加1是因为执行输出前n就减1了。

读取文件

常规写法:

fp=open("test.txt","r")
whileTrue:
line=fp.readline()
ifnotline:
break
print(line.strip())
fp.close()

升级写法:

fp=open("test.txt","r")
whileline:=fp.readline():
print(line.strip())

在合适的场景中使用海象运算符可以降低程序复杂性,简化代码,甚至可以提高程序的性能。

不适用场景

虽然海象运算符好用,但也不是所有场景都能用,还是有它的局限性的。

变量赋值

我们不能将=运算符与:=运算符一起使用,海象运算符只能是表达式的一部分:

a=5#Valid
a:=5#InValid
empty_list=[]#Valid
empty_list:=[]#InValid

如果你这样写,编辑器会直接提示错误。

加减法

a+=5#Valid
a:+=5#Invalid

Lambda函数中的赋值表达式

(lambda:a:=5)#Invalid
lambda:(a:=5)#Valid,butnotuseful
(var:=lambda:5)#Valid

争议

关键字

海象运算符使用:=这个关键字,是大多数开发人员都不太喜欢的,这个关键字跟我们平时接触到的都不一样,创造者独辟蹊径。

我也不太喜欢这个,但是也尊重创造者的规则,毕竟人家给大家带来这么实用的运算符。

运算符名称

一些开发人员认为“海象运算符”这个名称太抽象了,不能清晰地表达出这个运算符的含义,几乎百分之百的人第一次看到这个名称,不会想到它的功能。

欢哥以为,既然没有一套规定的命名方法,作者取个有意义的名字也无可厚非吧。

总结

从此以后,我们的武器库中又多了一件常规武器,大家在打仗(卷别人)时,不要忘了使用,对程序的性能和代码简洁性都会有提升。


现在大家对于Python海象运算符怎么理解,语法及基本应用是什么的内容应该都有一定的认识了吧,希望这篇能对大家有所帮助。最后,想要了解更多,欢迎关注博信,博信将为大家推送更多相关的文章。
版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门