Python是跨平台计算机脚本语言;Python提供了高效的高级数据结构,使用户能够简单有效地编程数据;Python容易扩展,可以使用C语言或C++扩展新数据也可用于可定制软件过程中的扩展程序语言。
Python 3.10 的主要修改有:
新的语法特性有:
模式匹配语法
正式允许带括号的上下文管理器
标准库中的新功能有:向 zip 添加可选的长度检查
解释器改进:用于调试和其他工具的精确行号
新类型功能:
显式类型别名
允许将联合类型写为 X | Y
参数规范变量
删除、弃用与限制:
需要 OpenSSL 1.1.1 或更新版本
弃用 distutils 模块
弃用并准备删除 PyUnicodeObject 中的 wstr 成员
删除 Py_UNICODE 编码器 API
添加可选的 EncodingWarning
但新版本中最为明显的还要属下面这几个:
结构化模式匹配
更加友好的错误提示
更加严谨的zip
结构化模式匹配
熟悉 Java,C++的程序员对于switch和case不会陌生,但是对于Python 3.10以前,很遗憾,Python一直没有类似的语法,不过自从3.10开始Python终于有类似语法了!
是 match和case,通用语法格式:
模式匹配大大增加了控制流的清晰度和表达能力,比如:
结果:
大家可以发现跟Java的switch...case是不是很相似啊!
更加友好的错误提示
对于编程学习者,尤其是新手,会碰到各种各样的编程错误,而有些错误的提示又不友好,甚至有些误导!
Python3.9采用了新的Parser,这给3.10更加人性的错误提示奠定了基础。3.10进行了改进,这个改进涵盖了:语法错误,缩进错误,属性错误,名称错误等。
语法错误:
以前的错误提示:有语法错误。还把错误的行数说错了,这个就很误导了!
现在的提示要好多了,会发出更多信息错误:
大量新的特殊SyntaxError异常消息已被纳入。一些最显着的如下:
:块前缺失
理解目标中的无括号元组
集合文字中和表达式之间缺少逗号
不带括号的多种异常类型
:字典文字中的缺失值和值
try没有块except或finally块
在比较中使用=代替==
在 f 字符串中的用法
比如:
缩进错误:
缩进错误是小白常见错误,现在有救啦,提示很友好:
属性错误:
用错了属性,不仅仅告诉你错误,有时还会你一些可能的选择,简直有点人工智能的味道了。
命名错误:
当打印NameError由解释器引发时,PyErr_Display() 将在引发异常的函数中提供类似变量名称的建议:
更加严谨的zip
zip打包多个可迭代对象,但是也有一个隐含问题就是如果两个可迭代对象的长度不一致,zip后丢失较长的可迭代对象元素
为了解决这个问题,zip添加了一个布尔类型的参数strict,默认为False
当其为True时,打包的可迭代对象长度不一致时会抛异常;当为False时,与之前版本的zip完全相同,因此zip是完全向后兼容的。
太白上仙:用了之后说说我的看法吧,尽管有用户批评这一版本比以前的版本更不适应,新功能也更鸡肋,但在我看来,它仍然保留着与其他软件不同的特点,并且只属于这个软件的优点,也其实并不差的!
提取码: dn82