“理论联系实惠,密切联系领导,表扬和自我表扬”——我就是老司机,曾经写文章教各位怎么打拼职场的老司机。

不记得没关系,只需要知道:有这么一位老司机,

穿上西装带大家打拼职场!

操起键盘带大家打磨技术!

 2019年10月中旬,Python 3.8发布了。

英语好的Python爱好者,可以看看官宣:

https://docs.python.org/3.8/whatsnew/3.8.html

今天老司机给大家介绍一个Python3.8中,比较有争议的新运算符,海象运算符(Walrus)。

海象运算符,其实只是冒号和等号在一起,就像这样:“:=”。是不是像海象的一双眼睛和一对獠牙?

这个新运算符(:=)使我们能够将值赋给表达式中的变量。

简单粗暴地讲,将计算结果赋值给某个变量,再判断这个变量。

我们来举个栗子:

本来应该是下面这样一段简单程序。

list1 = [1,2,3,4,5]

b = len(list1)

if b > 3:

print(“larger than 3”)

使用了海象运算符,两行并一行,就变成了这样了:

list1 = [1,2,3,4,5]

if b := len(list1) > 3:

print(“larger than 3”)

## 运行结果:

larger than 3

必须是Python 3.8上才能运行通过的。

再看个例子:

list1 = [1,2,3,4,5]

if c := ( 3 in list1) :

print(“found”)

else:

print(“not found”)

## 运行结果:

found

必须是Python 3.8上才能运行通过的。

有兴趣的可以看看PEP 572,链接:

https://www.python.org/dev/peps/pep-0572/

写得比较高大上 ^_^

 一定记住:

海象运算符不向前兼容!

海象运算符不向前兼容!!

海象运算符不向前兼容!!!

也就是说,如果没升级到Python 3.8的小伙伴,还是不要尝试“:=”了。

使用PyCharm的用户,即使已经升级了Python到3.8,而且更新了PyCharm里面的解释器配置,还是会遇到如下语法报错问题:

看看解释器的显示:

直接执行程序是不报错的,或者在Python IDLE里面也是正常的。

但是毕竟红色波浪线看起来很不舒服。

老司机告诉各位一个简单粗暴的办法——升级PyCharm到最新版本

一切解决!

Python 3.8尝鲜版,体验Walrus运算符,到此结束。

至于是否升级到Python 3.8,老司机建议:

Python不是时尚衣物和饰品,如果用的Python 3.*还好好的,没必要追新。

PS:怎么搞定PyCharm专业版注册,百度一下你就知道了。

作  者:Testfan Arthur

出  处:微信公众号:自动化软件测试平台

版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接

Python3.8新特性-- 海象操作符的更多相关文章

  1. 字符串格式的方法%s、format和python3.6新特性f-string和类型注解

    一.%s msg = '我叫%s,今年%s,性别%s' %('帅哥',18,'男') print(msg) # 我叫帅哥,今年18,性别男 二.format # 三种方式: # 第一种:按顺序接收参数 ...

  2. python3.8 新特性

    https://docs.python.org/3.8/whatsnew/3.8.html python 3.8的新功能本文解释了与3.7相比,python 3.8中的新特性. 有关完整的详细信息,请 ...

  3. ES2020新特性链操作符 '?.'和'??'

    ES2020新特性,js中的可选链操作符?. 概述 回想一下,我们是如何访问可能含有空值(null或undefined)属性的嵌套对象,比如访问web api 返回结果的user详情,可以使用嵌套的三 ...

  4. Python3.8新特性--PositionalOnly参数

    “理论联系实惠,密切联系领导,表扬和自我表扬”——我就是老司机,曾经写文章教各位怎么打拼职场的老司机. 不记得没关系,只需要知道:有这么一位老司机, 穿上西装带大家打拼职场! 操起键盘带大家打磨技术! ...

  5. python3.8新特性

    海象运算符(赋值运算符) #原来 def choice(): s = ' jsadlk '.strip() res = isinstance(s, int) if res: return 'int' ...

  6. 你不得不了解的Python3.x新特性

    从 3.0 到 3.8,Python 3 已经更新了一波又一波,但似乎我们用起来和 2.7 没有太大区别?以前该怎么写 2.7 的代码现在就怎么写,只不过少数表达方式变了而已.在这篇文章中,作者介绍了 ...

  7. python3.6 新特性学习

    #支持类型提示 typing { def greeting(name: str) -> str: return 'Hello ' + name #在函数greeting中,参数名称的类型为str ...

  8. Python3.X新特性之print和exec

    print print 现在是一个函数,不再是一个语句.<语法更为清晰> 实例1 打开文件 log.txt 以便进行写入并将对象指定给 fid.然后利用 print将一个字符串重定向给文件 ...

  9. python3.6新特性

    print(f'{6:^30}') print('\n'.join([' '.join([f'{i}*{j}={i*j:2d}' for j in range(1,i+1)]) for i in ra ...

随机推荐

  1. SpringBoot: 9.整合thymeleaf(转)

    1.创建maven项目,添加项目所需依赖 <!--springboot项目依赖的父项目--> <parent> <groupId>org.springframewo ...

  2. maven-tomct插件

    依赖 <dependency> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomca ...

  3. kubernetes安装dashboard步骤 【h】

    本篇文章参考kubernetes---dashboardv1.8.3版本安装详细步骤及 kubernetes-dashboard(1.8.3)部署与踩坑这两篇文章,详细写了自己部署过程中的操作.遇到的 ...

  4. MySQL InnoDB存储引擎大观

    转的一篇文章作者:七把刀链接:https://www.jianshu.com/p/d4cc0ea9d097 MySQL InnoDB 引擎现在广为使用,它提供了事务,行锁,日志等一系列特性,本文分析下 ...

  5. Linux详细介绍以及常用命令

    Linux系统说明 Linux( 诞生于1991.10.5) 继承了Unix以网络为核心的设计思想, 是一个性能稳定的多用户网络操作系统. Linux这个词严格意义上只表示Linux内核, 但日常中, ...

  6. mysql数据库设置密码

    1.用SET PASSWORD命令 mysql -u root mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); ...

  7. 【VS开发】关于线程安全一些细节体会

    [VS开发]关于线程安全一些细节体会 标签(空格分隔): [VS开发] 利用C++进行GUI界面开发,最大的问题往往是多线程安全问题,由于C++不具备收集内存垃圾的功能,所以必须由程序员负责维护,因此 ...

  8. 【VS开发】OpenCV2:Mat属性type,depth,step

    OpenCV2:Mat属性type,depth,step 在OpenCV2中Mat类无疑使占据着核心地位的,前段时间初学OpenCV2时对Mat类有了个初步的了解,见OpenCV2:Mat初学.这几天 ...

  9. 深入理解C语言-二级指针三种内存模型

    二级指针相对于一级指针,显得更难,难在于指针和数组的混合,定义不同类型的二级指针,在使用的时候有着很大的区别 第一种内存模型char *arr[] 若有如下定义 char *arr[] = {&quo ...

  10. element-ui tree控件获取当前节点和父节点

    今天使用element-ui 遇到两个问题,第一个问题是获取tree控件的当前节点和父节点, 一开始使用tree控件的getCurrentNode()函数,结果发现返回的是当前节点的data属性,和u ...