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

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

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

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

 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. Es性能优化

    1. Es中10亿级别的数据量,如何提高查询效率 (1) 性能优化关键:file system cache a. 不要期待随手挑一个参数,就可以万能的应对所有性能慢的场景 b. es依赖于底层的fil ...

  2. Gitlab-Runner基础教程

    一.Intro jenkins和runner,作为主流自动化运维工具来说,两者的大思路其实是一样的,就是将我们提交到代码仓库的代码拉到jenkins或者runner运行的机器里,然后执行一系列的命令( ...

  3. kubeadm安装集群系列-1.基础服务安装

    基础服务 本文基于centos7.5部署 规划 10.8.28.200 master-VIP 10.8.31.84 k8s-test-master-1 10.8.152.149 k8s-test-ma ...

  4. xss 学习(一)

    存储型 .反射型.DOM 型这是最常见的三种分类: 存储型存储型XSS也叫持久型XSS,存储的意思就是Payload是有经过存储的,当一个页面存在存储型XSS的时候,XSS注入成功后,那么每次访问该页 ...

  5. 【VS开发】【Live555-rtsp】在windows 使用vs2008编译live555

    在windows 使用vs2008编译live555 基于 liveMedia的程序,需要通过继承UsageEnvironment抽象类和TaskScheduler抽象类,定义相应的类来处理事件调度, ...

  6. C学习笔记-数组

    数组的概念 数组是一组具有相同数据类型的变量集合,这里要注意两点,数组只能存储相同的数据类型和数组的内存是连续的,这位数组和指针的联系奠定了基础. 一维数组 定义及初始化 一维数组指的是只有一个下标的 ...

  7. vue工程中,如何查询用户访问的地理位置 + vue中的jsonp

    有一个需求,就是当用户访问你们公司的网站时,需要查到这位用户的地理位置(通过电脑ip来访问) 试了很多方法,感觉使用腾讯的位置服务api最好,返回的信息最全,包括经纬度,国家城市地区等.而其他绝大多数 ...

  8. ZOJ Problem Set - 1003

    1.翻译参考 http://www.cnblogs.com/woodfish1988/archive/2006/11/10/556926.html 2.代码参考 http://www.cnblogs. ...

  9. Stream系列(十一)SummarizingDouble方法使用

    汇总 视频讲解: https://www.bilibili.com/video/av78011675/ EmployeeTestCase.java package com.example.demo; ...

  10. [转帖]InfluxDB 1.2.0安装及新旧版本的注意事项

    InfluxDB 1.2.0安装及新旧版本的注意事项 http://haibing.org/245?zwlqby=npztq3 挺好的文章 很好的解决了 上一个文档里面 关于 web admin 的问 ...