python目前主流使用的版本,python版本越新越好吗
文章目录Python2和Python3Python2系列Python3系列Python 3.4 Python 3.5 Python 3.6 Python 3.7 Python 3.8 Python 3.9 Python 3.10
Python的版本主要分为2.和3.两个系列。
Python3计划每年发布一个新的子版本,每次只添加两三个新语法。在使用的时候,当然是Python的新版本更好,老版本的代码更难维护。在维护旧版本的代码时,需要知道版本之间的主要区别。有时候看到一些代码的语法特征就能大致猜出是什么版本。Python2和Python3是Python2到Python3的大版本升级,有很多向后兼容的差异,以至于很多Python2的代码无法被Python3解释器运行,反之亦然。2020年开始,Python正式停止对Python2的维护,所有旧代码都将超过保质期。区别Python2Python3输出模式使用print关键字,比如print Hello 使用print()函数,比如print(Hello )输入模式使用raw_input()函数,input()函数字符串的编码格式默认使用ASCII。Unicode格式字符串使用%,如 Hello,%s% (World )使用format()函数,如 Hello,{} 。格式( World )源文件默认为ASCII编码,因此,在使用中文时,添加一行# -*-编码:utf-8 -*- UFT-8默认为…… Python2.1 ~ Python2.6略:Python2.7这是Python2 Python3系列的最后一个子版本Python 3.0:2008年发布https://www.python.org/download/releases/3.0/Python3.1 ~ Python 3.3略Python 3.4 2014年发布:https://www.python.org/downloads/release/python-340/
Pip被采用作为Python包的默认安装方法。
添加标准库pathlib,用于以面向对象的方式操作文件路径。如下所示:
Path lib导入路径p=path(/root/test/1 . py )p . name 1 . py p . suffix 。py p.exists () false添加标准库枚举来定义枚举类。如下所示:
从枚举导入枚举类测试(枚举):a=1.b=2.c=3.test.atest. A: 1test [a] #可以用名称Test.a: 1 list(Test) #可以迭代[test。答:1、测试
添加了标准库Statistics,以提供计算平均值、中值、方差等的函数。
添加标准库tracemalloc,它用于跟踪内存分配并方便调试。
Python3.5发布于2015年:https://www.python.org/downloads/release/python-350/
扩展了迭代解包运算符*和字典解包运算符* *的语法。
可用于元组、列表、集合和字典表达式:* range (4)语法错误:此处不能使用带星号的表达式* range (4),4 (0,1,2,3,4) [* range (4),4] [0,1,2,3,4] { **{b: 2}}{a: 1, b: 2}可同时多次使用:print (* [1],* [2],* {c: 3}) 12C dict (* * {a: 1)
%a% 3.143.14 b%a% 3.14b3.14 添加了关键字async和await来定义协调过程:
async def read _ db(db):data=await db . fetch( select . )添加语法:类型注释。
对于函数,可以使用冒号:在形参上添加注释,使用-在返回值上添加注释。这些注释存储在函数的__annotations__属性中:def fun1(a,b: string or None , c: class int=0)-int:及格.好玩1。_ _ annotations _ _ { b : string or none , c: class。 Return: class int}对于变量,可以使用冒号:add注释:x: int #该语句可以执行,但不会创建变量XXname错误:未定义名称 x :int=1 # Add类型注释和assign x1类型注释可以是任何可执行的表达式。例如:x: int #这个批注是一个类型,不强制进行类型检查,但是可以被IDE静态类型检查x: Hello #这个批注是一个str值x: print(Hello) #这个批注为一个语句Hello添加了标准库类型,定义了一些类型,常用于类型批注中。
添加标准库zipapp,它用于将Python脚本打包成可执行的归档文件,扩展名为。pyz。
Python3.6发布于2016年:https://www.python.org/downloads/release/python-360/
dict中的元素以前是按键的顺序存储的:
{2: ,1:}{1: ,2: }现在将按插入顺序存储:
{2: ,1:}{2: ,1:}添加语法:在数字中插入下划线作为分隔符,以提高可读性。
1 _ 000 _ 111 _ 00010011000 {:_}.format (100000) #格式化字符串时,还可以输出下划线“1_000_000”。Add语法:在字符串中添加前缀F后,将执行花括号{}内的语句。
A=1 fa={a}a=1 f{int(1) 2}3 添加定义元类的方法:为类定义__init_subclass__()方法以初始化子类。如下所示:
testbase:subclass=[]def _ _ init _ subclass _ _(cls,* args,* * kwargs): super()。_ _ init _ subclass _ _(* args,* * kwargs) cls。子类。追加(cls)添加标准。
原随机模块产生的随机数可能是可预测的,不适合用作密码或加密密钥,否则会有安全隐患。Python 3.7 2018年发布:https://www.python.org/downloads/release/python-370/Python 3.8 2019年发布:https://www.python.org/downloads/release/python-380/
Add语法:赋值表达式,用于给表达式中的变量赋值。
If:=input (): #相当于先执行a=input();然后执行if a: print(a) (a :=0) 11 a0添加语法:定义函数时,将正对角线/前的参数视为位置参数。
DEF FUN1 (a,b,c=0,/,* args,* * kwargs):及格.FUN1 (1,2,3) FUN1 (1,2) Add语法:以F字符串中variable=的格式打印变量的值,方便调试。
x=1 print(f“{ x=}”)x=1支持在finally语句块中使用continue关键字。
多处理模块添加了一个SharedMemory类来创建进程间的共享内存。
Python3.9发布于2020年:https://www.python.org/downloads/release/python-390/
Dict类增加了合并操作符和更新操作符=。
以前字典合并主要有两种方式:{**d1,* * d2} d1。update (d2) # update()方法会改变字典的内容,例如:d1={1: a} d2={2: b} {* * d1,* * d2} {1: a 2: B}现在可以通过运算符合并字典:d1={1: A} d2={2: B} d1 d2 #相当于{* * d1,* * d2} {1: a ,2: B} d1 =d2 #相当于d1。如下所示:
S=Hello s.rstrip(lo) #之前的rstrip()方法会删除右边所有匹配的单个字符 He s . removesuffix( lo )#现在的remove suffix()方法只会删除匹配的子串 Hel 。其原理是:
移除前缀(self: str,prefix: str,/)-str: if self。以(前缀)开头:return self [len(前缀):] else: return self [:]支持使用内置类型的大部分类名作为函数参数,易于声明注释。如下所示:
t=type[int]Ttype[int]list[str]==list[str]True tuple[int,]tuple[int,] def fun1(x: dict[str,List [int]]):及格.Python 3.10发布于2021年:https://www.python.org/downloads/release/python-3100/
添加语法:匹配大小写模式匹配。格式如下:
匹配表达式大小写模式:块大小写模式:块.执行时,表达式将从上到下与每个事例模式进行比较。如果匹配,执行case块并结束match-case语句块。
模式有多种语法,比如模糊匹配和绑定变量,所以它比C语言中的switch-case语句有更多的功能。
添加语法:使用运算符连接多个类型,指示联合类型。
Int str #相当于typing.union [Int,str] isinstance (1,int str) #相当于isinstance (1,(int,str))和isinstance(1,typing。Union[int,Str]) true是子类(set,int str) false调用open()函数时,允许参数encoding=locale ,相当于encoding=None,表示采用当前平台的默认编码格式。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。