Python3.8新特性-- 海象操作符
“理论联系实惠,密切联系领导,表扬和自我表扬”——我就是老司机,曾经写文章教各位怎么打拼职场的老司机。
不记得没关系,只需要知道:有这么一位老司机,
穿上西装带大家打拼职场!
操起键盘带大家打磨技术!
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新特性-- 海象操作符的更多相关文章
- 字符串格式的方法%s、format和python3.6新特性f-string和类型注解
一.%s msg = '我叫%s,今年%s,性别%s' %('帅哥',18,'男') print(msg) # 我叫帅哥,今年18,性别男 二.format # 三种方式: # 第一种:按顺序接收参数 ...
- python3.8 新特性
https://docs.python.org/3.8/whatsnew/3.8.html python 3.8的新功能本文解释了与3.7相比,python 3.8中的新特性. 有关完整的详细信息,请 ...
- ES2020新特性链操作符 '?.'和'??'
ES2020新特性,js中的可选链操作符?. 概述 回想一下,我们是如何访问可能含有空值(null或undefined)属性的嵌套对象,比如访问web api 返回结果的user详情,可以使用嵌套的三 ...
- Python3.8新特性--PositionalOnly参数
“理论联系实惠,密切联系领导,表扬和自我表扬”——我就是老司机,曾经写文章教各位怎么打拼职场的老司机. 不记得没关系,只需要知道:有这么一位老司机, 穿上西装带大家打拼职场! 操起键盘带大家打磨技术! ...
- python3.8新特性
海象运算符(赋值运算符) #原来 def choice(): s = ' jsadlk '.strip() res = isinstance(s, int) if res: return 'int' ...
- 你不得不了解的Python3.x新特性
从 3.0 到 3.8,Python 3 已经更新了一波又一波,但似乎我们用起来和 2.7 没有太大区别?以前该怎么写 2.7 的代码现在就怎么写,只不过少数表达方式变了而已.在这篇文章中,作者介绍了 ...
- python3.6 新特性学习
#支持类型提示 typing { def greeting(name: str) -> str: return 'Hello ' + name #在函数greeting中,参数名称的类型为str ...
- Python3.X新特性之print和exec
print print 现在是一个函数,不再是一个语句.<语法更为清晰> 实例1 打开文件 log.txt 以便进行写入并将对象指定给 fid.然后利用 print将一个字符串重定向给文件 ...
- 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 ...
随机推荐
- 九大内置对象 and HTTP略微的个人见解
jsp 中九大内置对象: 请求对象:request 输出对象:out 响应对象:response 应用程序对象:application 会话对象:sess ...
- cmake 在mac系统的安装
CMake是一个比make更高级的跨平台的安装.编译.配置工具,可以用简单的语句来描述所有平台的安装(编译过程).并根据不同平台.不同的编译器,生成相应的Makefile或者project文件.本文主 ...
- rocketMq消息的发送和消息消费
rocketMq消息的发送和消息消费 一.消息推送 public void pushMessage() { String message = "推送消息内容!"; try { De ...
- [bzoj4842][bzoj1283][Neerc2016]Delight for a Cat/序列_线性规划_费用流
4842: [Neerc2016]Delight for a Cat_1283: 序列 题目大意:ls是一个特别堕落的小朋友,对于n个连续的小时,他将要么睡觉要么打隔膜,一个小时内他不能既睡觉也打隔膜 ...
- [转帖]如何在VirtualBox中运行macOS Catalina Beta版本
如何在VirtualBox中运行macOS Catalina Beta版本 secist2019-08-03共2179人围观系统安全 https://www.freebuf.com/articles/ ...
- 【Python】【demo实验14】【练习实例】【斐波那契数列】【经典兔子生小兔子问题】
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 每个月的兔子数量 1:22:23:4 2+24:6 2+ ...
- SQL 查看某个表被哪些存储过程或者视图使用
--查询某个表被哪些视图/存储过程使用(type='P':表示存储过程,type='V':表示视图) SELECT OBJECT_NAME(id) FROM syscomments WHERE id ...
- SQLite进阶-10.约束
约束 约束是作用于数据表中列上的规则,用于限制表中数据的类型.约束的存在保证了数据库中数据的精确性和可靠性. 约束可以是列级或表级,列级约束作用于单一的列,而表级约束作用于整张数据表. SQLite中 ...
- SqlServer中获取所有数据库,所有表,所有字段
原文:SqlServer中获取所有数据库,所有表,所有字段 一.获取所有数据库 select * from master.dbo.SysDatabases 二.获取某个库中所有表 SELECT * F ...
- PHP给图片添加文字水印实例
PHP给图片添加文字水印实例,支持中文文字水印,是否覆盖原图,自定义设置水印背景色.文字颜色.字体等. 水印类water.class.php var $Path = "./"; / ...