Python一直在马不停蹄的更新,最近又要发布Python3.9的正式版了。该版本包含了一些新特性,下面一起来看看吧!!!

本文主要介绍以下方面:

  • 新增字典合并操作符 | 和|=
  • 新增函数的参数、返回值的类型提示
  • 新增字符串移除前缀和后缀的函数
  • 新的python解析器

一、新增字典合并操作符 | 和|=

新增方法:使用 | 字符合并字典,如果合并时两个字典的键值相同采用第二个字典的键值对

例如:

dict1 = {k1:'a',k2:'b',k3:'c'}
dict2 = {k4:'d',k5:'e'}
dict3  = dict1 | dict2
print(dict3)

输出结果

{k1:'a',k2:'b',k3:'c',k4:'d',k5:'e'}

也可以使用 |= 操作符进行合并

例如:

dict1 = {k1:'a',k2:'b',k3:'c'}
dict2 = {k4:'d',k5:'e'}
dict1 |= dict2
print(dict1 )

输出结果

{k1:'a',k2:'b',k3:'c',k4:'d',k5:'e'}

|= 操作符的好处是支持使用可迭代对象(如列表或生成器)的键值对更新字典

例如:

dict1 = {k1:'a',k2:'b',k3:'c'}
dict2 = ((i,i**2) for i in range(3))
dict1 |= dict2
print(dict1 )

输出结果

{k1:'a',k2:'b',k3:'c',k4:'d',k5:'e'}

如果把上述代码中的dict1 |= dict2换成 dict3 |= dict1 + dict2则汇报TypeError,因为 | 只允许字典类型进行合并

我们来看看以前python是如何实现字典合并的呢?答案是使用字典的update()方法

例如:

dict1 = {k1:'a',k2:'b',k3:'c'}
dict2 = {k4:'d',k5:'e'}
dict3  = dict1.update(dict2)
print(dict3)

输出结果:

{k1:'a',k2:'b',k3:'c',k4:'d',k5:'e'}

不过为什么不使用 + 进行字典合并呢?

二、新增函数参数、返回值的类型提示

python的动态类型的编程语言,不需要指定数据类型,但可以对数据类型进行建议,语法如下:

def twoSum(num1: int, num2: int=100) -> int:sum = num1 + num2return sum

参数后面的冒号代表参数的类型建议,函数后面的箭头代表函数返回值的类型建议

虽然有类型建议,但是不传入建议的类型也不会报错,比如传入两个字符串,也可以对两个字符串进行相加。

有时候由于我们调用的时候可能不知道函数的建议参数类型和返回值类型,传错了就很尴尬,于是python3.9中增加了在调用的函数的地方给出类型提出,如下图所示:

任何地方都可以使用类型提示,由于有了新的语法支持,看起来非常清爽。

三、新增字符串函数

在python3.9中新增了两个函数,一个是移除字符串前缀,一个是移除字符串后缀,语法如下:

"Hello World".removeprefix("Hel")
"Hello World".removesuffix("Hel")

四、新的python解析器

python目前主要使用一种基于LL(1)的语法,这种语法通过LL(1)解析器进行解析(从上到下从左到右地解析代码)。

新的python解析器是基于PEG语法的。

由于本仙女对解析器等底层东东了解不多,也就不介绍太多啦

顺便吐槽一句,python这么好用,阿里的测试为什么用java不用python呢,辛辛苦苦学java中

Python 3.9要发布啦,快来看看有哪些新特性?相关推荐

  1. PostgreSQL 14 版本发布,快来看看有哪些新特性!

    文章目录 性能增强 数据类型和 SQL 管理功能 复制和恢复 安全增强 更多特性 大家好!我是只谈技术不剪发的 Tony 老师. PostgreSQL 全球开发组于 2021-05-20 发布了 Po ...

  2. Java9都快发布了,Java8的十大新特性你了解多少呢?

    Java 9预计将于今年9月份发布,这是否会是一次里程碑式的版本,我们拭目以待.今天,我们先来复习一下2014年发布的Java 8的十大新特性. Java 8可谓是自Java 5以来最具革命性的版本了 ...

  3. Java9发布回顾Java 8的十大新特性

    java9已经在北京时间9月22日正式发布,开发者可以在oracle jdk官网上下载到最新的jdk9. 今天,我们先来一起复习一下2014年发布的Java 8的十大新特性.先来喝杯java~~~ 按 ...

  4. [转载] Java9发布回顾Java 8的十大新特性

    参考链接: Java中的DoubleStream mapToObj() java9已经在北京时间9月22日正式发布,开发者可以在oracle jdk官网上下载到最新的jdk9. 今天,我们先来一起复习 ...

  5. Flink 1.11.0 发布,有哪些值得关注的新特性?

    简介:7 月 7 日,Flink 1.11.0 正式发布.历时近 4 个月,Flink 在生态.易用性.生产可用性.稳定性等方面都进行了增强和改善.Apache Flink PMC.阿里巴巴高级技术专 ...

  6. 安卓9.0发布,献上Android 9.0新特性适配处理

    安卓9.0即Android 9.0已经面向全球发布,它的代号是Pie,仍然基于Linux内核构建.为了避免Android 9.0 Pie新特性更新引发的适配问题,本文将介绍Android 9.0将带来 ...

  7. 2023 年第一弹, Flutter 3.7 发布啦,快来看看有什么新特性

    核心内容原文链接: https://medium.com/flutter/whats-new-in-flutter-3-7-38cbea71133c 2023 年新春之际, Flutter 喜提了 3 ...

  8. 亿方云用户大会:六大产品新特性震撼发布 持续引领行业创新

    亿方云用户大会暨产品发布会"Link Future 2017"于11月16日在杭州举办.本次大会围绕"安全赋能•效率未来"的主题展开,发布了行业首创的六大产品新 ...

  9. Python 3.9 beta2 版本发布了,看看新特性?

    随着 Python 3.9.0b1 的发布,即开发周期中计划的四个 beta 版本的首个,Python 3.9 的功能已经是完善了.在 10 月发布最终版本之前,还会有许多测试和稳定性方面的工作要做. ...

最新文章

  1. 从零开始搭建一个vue项目 -- vue-cli/cooking-cli(一)
  2. C# 获取一些简单的本机信息
  3. 原创跑酷小游戏《Cube Duck Run》 - - 方块鸭快跑
  4. one microblog from 任志强
  5. 深入比特币原理(五)——高级交易与脚本
  6. UVa11988-破损的键盘 Broken Keyboard
  7. c++输入、输出和文件
  8. 祝福 Stephan Ewen,Apache Flink 将继续前行 !
  9. bzoj 4605: 崂山白花蛇草水
  10. matlab所有画图函数总结——20210318
  11. zend studio php 错误提示,Zend Studio错误总结,zendstudio总结_PHP教程
  12. ISIS协议原理与配置
  13. centos 加密解密
  14. 关于 nor it's doXxx() equivalent is defined in action class 的问题解决办法
  15. 人脸验证(图片/视频) tensorflow、pytorch框架、dlib库(face_recognition)和opencv库————附带详细步骤和代码,可实际运行
  16. 小博老师解析Java核心技术点 ——表单令牌(一)
  17. CC++编程环境搭建-四种常用开发工具(VSCode,Dev,CodeBlocks,Clion)
  18. 如何理解空洞卷积(dilated convolution)
  19. 使用Date日期对象来完成,在页面上根据不同时间显示不同的问候语,如:早上好,中午好,下午好,晚上好等信息...
  20. python 用户信息管理系统【各个函数剖析 + 完整代码 零基础适用篇】

热门文章

  1. Oracle学习(十四)分表分区
  2. 机器学习算法-PCA降维技术
  3. XML原理及应用pdf
  4. sigmoid function vs softmax function
  5. linux中添加一个用户到指定用户组的两种方式,修改一个用户到指定用户组的一种方式...
  6. Java String的intern
  7. 开发基础(字符编码、列表操作)
  8. MySQL优化之三:SQL语句优化
  9. iOS html5使用缓存并及时更新方案总结
  10. 《R语言数据分析》——3.2 聚集