海象运算符?一文详解python3.8到底更新了哪些新功能
检查你的python版本
早在2019年10月
正式版的python就已经更新到3.8版本
听说还加了一只小海象进去
那么半年过去了
python3.8究竟更新了哪些新功能
我要不要更新到最新版本
一起跟随本文看看吧!
Python 3.8中最大的变化是引入赋值表达式。
也就是前面说的海象运算符
赋值表达式可以在一行代码中
同时完成赋值和返回值的操作
说人话就是在python3.7及之前版本
这么干需要两步
>>> text = "早起学习"
>>> print(text)
False
那么有了这个赋值表达式
只要一步就可以搞定
>>> print(text :=
"早起学习")
早起学习
再来看一个例子
现在需要一串代码实现下面需求
要求用户输入直到输入早起 python并记录用户的输入
用以前的方式实现
inputs = list()
current = input("请输入文字: ")
while current != "早起python":
inputs.append(current)
current = input("请输入文字: ")
这里重复的使用了input,麻烦麻烦
再换个思路优化一下
用一个无限while循环,然后使用break跳出
inputs = list()
while True:
current = input(请输入文字": ")
if current == "早起python":
break
inputs.append(current)
看上去只用了一次input函数
但是怎么代码越写越长
那么使用最新的赋值表达式试试看
inputs = list()
while (current := input("请输入文字: ")) != "早起python":
inputs.append(current)
直接在while后面就开始了判断
是不是有点像C/C++
而在正则表达式中用赋值表达式会更加简洁
不过话说回来
代码是少了
但一行代码所含的信息量就多了
就需要花更多的时间去阅读这一行代码
所以什么时候使用还请自己判断
等等!
还没说为啥把赋值表达式叫做海象运算符
因为赋值表达式长这样
请把手机旋转90度
再看这符号像不像侧着的海象象牙
不管你觉得像不像
反正大家都这么解释
再来看下一个新特性
使用f-字符串进行更简单的调试
在python3.6之后就有了f-字符串
可以这么用
>>> style = "早起python"
>>> f"I love {style} "
'I love 早起python'
但是在Python 3.8中
可以在f字符串中使用赋值表达式
>>> f"i love {(text := '早起python')} "
'I love 早起python'
甚至可以在表达式末尾添加 = 来调试代码
>>> python = 3.8
>>> f"{python=}"
'python=3.8'
这在调试脚本中非常有用
因为以前需要输入两次变量名称
>>> python = 3.7
>>> f"python={python}"
'python=3.7'
毕竟活着就是为了偷懒
好了看下一个
Python 3.8提供了一个新模块importlib.metadata
可以访问有关已安装软件包的信息
#查看pip相关信息
>>> metadata.version("pip")
'20.0.2'
>>> pip_metadata = metadata.metadata("pip")
>>> list(pip_metadata)
['Metadata-Version', 'Name', 'Version', 'Summary', 'Home-page', 'Author',
'Author-email', 'License', 'Keywords', 'Platform', 'Classifier',
'Classifier', 'Classifier', 'Classifier', 'Classifier', 'Classifier',
'Classifier', 'Classifier', 'Classifier', 'Classifier', 'Classifier',
'Classifier', 'Classifier', 'Requires-Python']
>>> pip_metadata["Home-page"]
'https://pip.pypa.io/'
>>> pip_metadata["Requires-Python"]
'>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*'
反正我不知道具体有啥用
再看下一个改动
添加了错误语法提示
给你一个贴心的语法问题定位
#python3.7
>>> version = "3.7"
>>> version is "3.7"
False
# Python 3.8
>>> version = "3.8"
>>> version is "3.8"
<stdin>:1: SyntaxWarning: "is" with a literal. Did you mean "=="?
False
>>> version == "3.8"
True
好了
肉眼可见可操作的更新基本上就在以上了
当然还有一些小的改动就不再介绍
如果想体验最新的python3.8
可以按照下面步骤安装
yum -y install yum-utilsyum-builddep pythoncurl -O https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgztar xf Python-3.8.0.tgzcd Python-3.8.0./configuremakemake install
- Guitar Pro最新版 7.5有哪些新功能?guitar pro7.5更新详解。(附软件下载)
- Python 3.8 新功能大揭秘
- Python:各类运算符详解及其优先级
- Android图表引擎aiCharts for Android v1.7到底有哪些新功能
- Python 3.8新功能盘点:更快,更简洁,更一致,更现代化
- Python学习笔记之列表和成员运算符及列表相关方法详解
- 【松勤软件测试】一文让你知道软件测试职业到底有哪些发展方向
- 海象运算符(3.8新特性)
- Python 海象运算符 := 的三种用法
- Python3.5运算符操作实例详解
- Windows 下python3.8环境安装教程图文详解
- win10 9926新功能/新特性有哪些?windows10预览版9926更新内容
- python3.8中运算符/和//区别
- python 六个标准类型都支持哪些运算符?
- Python 3.7新功能之dataclass装饰器详解
- python3.8更新内容01
- Python 3.8 新功能全解
- Python 3.8 新功能大揭秘
- 人工智能首选Python吗 到底Python有哪些优势
- 新版本尝鲜:Python 3.9版本中的新功能有哪些?