海象运算符?一文详解python3.8到底更新了哪些新功能

昨天,来了,Python3.9,但其实很多人3.7还没用熟,3.8肯定也没了解过,今天给大家介绍一下Python3.8的一个特性:海象运算符。

打开你的电脑

检查你的python版本

海象运算符?一文详解python3.8到底更新了哪些新功能_第1张图片

早在2019年10月

正式版的python就已经更新到3.8版本

听说还加了一只小海象进去

那么半年过去了

python3.8究竟更新了哪些新功能

我要不要更新到最新版本

一起跟随本文看看吧!

海象运算符?一文详解python3.8到底更新了哪些新功能_第2张图片

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度

再看这符号像不像侧着的海象象牙⬇️

海象运算符?一文详解python3.8到底更新了哪些新功能_第3张图片

不管你觉得像不像

反正大家都这么解释

海象运算符?一文详解python3.8到底更新了哪些新功能_第4张图片


再来看下一个新特性

使用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'

毕竟活着就是为了偷懒

海象运算符?一文详解python3.8到底更新了哪些新功能_第5张图片   

好了看下一个

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"
:1: SyntaxWarning: "is" with a literal. Did you mean "=="?
False

>>> version == "3.8"
True

好了

肉眼可见可操作的更新基本上就在以上了

当然还有一些小的改动就不再介绍

如果想体验最新的python3.8

可以按照下面步骤安装⬇️

yum -y install yum-utils
yum-builddep python
curl -O https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
tar xf Python-3.8.0.tgz
cd Python-3.8.0
./configure
make
make install

    今天的文章就到这里啦

拜拜~

每日留言

说说你做过那些让人抓狂的事情

或者一句激励自己的话?

(字数不少于15字)

海象运算符?一文详解python3.8到底更新了哪些新功能_第6张图片

今天放个人微信二维码出来,限量加好友。记得附个人简介,说不定能一起搞事呢


近期推荐阅读:

【1】整理了我开始分享学习笔记到现在超过250篇优质文章,涵盖数据分析、爬虫、机器学习等方面,别再说不知道该从哪开始,实战哪里找了

【2】【终篇】Pandas中文官方文档:基础用法6(含1-5)

觉得不错就点一下“在看”吧 

你可能感兴趣的:(海象运算符?一文详解python3.8到底更新了哪些新功能)