当前位置: 首页 > 科技观察

Python海象算子,强大!_0

时间:2023-03-14 13:02:33 科技观察

大家好,我是咸欢,你们的老相识!海象是最大的哺乳动物,有人称它们为北半球的“土著”居民。头圆,嘴短而宽,鼻粗,上犬齿形成獠牙,长40~90厘米,每颗重4公斤以上。雄性海象身长可达4米,体重可达2吨。海象喜欢群居,成百上千只聚集在一起。海象像没有活力的老人一样眯着眼睛。他们喜欢晚睡。它们一生的大部分时间都躺在冰上,也可以睡在水里。太神奇了。作为996的滚农,我很羡慕他们的生活,真想像他们一样躺平。好了,废话不多说,继续滚!今天给大家带来一个以海象命名的算子——海象算子。Python海象运算符在PEP572中提出,并在Python3.8中合并并发布。海象运算符的英文原名是AssignmentExpresions,即赋值表达式。海象表达式由一个:和一个=组成,即:=。我们一般称它为海象算子,因为它看起来像一只旋转了90°的海象。作者想象力还是很丰富的,这都能连起来!语法海象运算符的语法格式是:(variable_name:=expression)这是一个新的赋值运算符,类似于我们常见的=,一个变量名后面跟一个表达式。用法用于if-else条件表达式正则写法:a=5ifa>1:print('dosth!')升级写法:ifa:=5>1:print('dosth!')forwhileloopRegular写法:n=3whilen:print('dosth!')n-=1升级写法:n=3while(n:=n-1)+1:print('dosth!')原因这里加1是在执行输出之前n减1。读取文件的正则写法:fp=open("test.txt","r")whileTrue:line=fp.readline()ifnotline:breakprint(line.strip())fp.close()升级写法:fp=open("test.txt","r")whileline:=fp.readline():print(line.strip())在合适的场景下使用海象算子可以降低程序复杂度,简化代码,甚至可以提高程序的性能。不适用场景海象算子虽然简单易用,但并非适用于所有场景,仍然有其局限性。变量赋值我们不能使用=操作符和:=操作符,海象操作符只能是表达式的一部分:a=5#Valida:=5#InValidempty_list=[]#Validempty_list:=[]#InValid如果你这样写,编辑器会直接提示错误。加减a+=5#Valida:+=5#InvalidLambda函数中的赋值表达式(lambda:a:=5)#Invalidlambda:(a:=5)#有效,但没用(var:=lambda:5)#ValidControversialKeyword海象运算符使用:=大多数开发人员不喜欢这个关键字。这个关键词和我们平时接触到的不同,创作者有独到的手法。我不太喜欢这个,但我也尊重创作者的规定,毕竟他们给大家带来了这么实用的算子。OperatorName一些开发者觉得“WalrusOperator”这个名字过于抽象,无法清晰表达这个运算符的含义,几乎100%的人都是第一次看到这个名字,并没有想到它的作用。欢哥认为,既然没有一套规定的命名方式,那么作者选择一个有意义的名字无可厚非。总结从那时起,我们的武器库中又增加了一种常规武器。打仗的时候不要忘记使用它。它将提高程序的性能和代码的简洁性。