IT行业日新月异,落后的Python2将在2020年逐渐被淘汰。2019年,随着数据科学的兴起,Python成为最火的编程语言。即便如此,被海量的知识淹没也是正常的。语法在不断变化,每次Python更新都会添加许多新表达式。功能还有很多,小新只恨自己知道得太晚了。如果读者有同感,这里有一个坏消息:最近,Python3.8已经发布。不过不用着急,小新为大家总结了Python3.8的6个新特性,每个新手都应该掌握。1.新模块:读取元数据。使用新的importlib.metadata模块读取第三方包的元数据。版本号可以在脚本包中获取。2.字典反转:现在可以使用resersed()在反向插入排序中迭代排序字典。3、Continue——finally由于Python的实现,在Finally子句中加入continue语句是非法的。现在这个问题不复存在了。foriinrange(2):try:print(i)finally:print('Asentence.')continueprint('Thisnevershows.')#Python<=3.7>>SyntaxError:'continue'notsupportedinside'finally'子句#Python3.8>>0Asentence.1Asentence.4。指明参数类型:使代码更强大Python函数只接受两种参数。位置参数:根据函数定义的参数位置传递参数。关键字参数:使用关键字来指定参数。在下面的例子中,参数a和参数b的值可以通过位置参数或者关键字参数来确定,非常灵活。defmy_func(a,b=1):return+bmy_func(5,2)#bothpositionalargumentsmy_func(a=5,b=2)#bothkeywordarguments新版Python使用语法/和*来区分,并提供了指定的能力接受带有单词参数的位置参数或键方法。注意:语法*不是Python3.8的新语法。在下面的示例中,前两个参数a和b只接受位置参数,中间的c和d接受位置或关键字参数,最后的e和f只接受关键字参数。defmy_func(a,b,/,c,d,*,e,f):returna+b+c+d+e+fmy_func(1,2,3,4,5,6)#invalidaseandfarekeyword-onlymy_func(a=1,b=2,3,4,e=5,f=6)#invalidasaandbareposition-onlymy_func(1,2,c=3,4,e=5,f=6)#returns21my_unc(1,2,c=3,d=4,e=5,f=6)#returns21为什么要牺牲灵活性?如果参数名称是任意且无用的,则应排除关键字参数。如果预计函数中的参数名称可能会发生变化,指定参数类型可以防止代码崩溃,也可以使代码更健壮。5.赋值表达式:提高代码可读性赋值表达式又称海象运算符,是语法形式为:=的一种新运算符,可以将一个较大表达式的某一部分赋值给一个变量。这很容易成为Python3.8中讨论最多的新特性。看一个例子:赋值表达式b:=a**2将a的平方即36赋值给b,然后检查b的值是否大于0a=6#Thefollowingstatement#assignsthevaluea**2tovariableb,#andthencheckifb>0istrueif(b:=a**2)>0:print(f'Thesquareof{a}is{b}.')#Thesquareof6is36。有时赋值表达式可以使代码更加简洁和可读。但是,请注意不要过度使用赋值表达式,因为在某些情况下它会使代码更难理解。#DON'TDOTHIS!a=5d=[b:=a+1,a:=b-1,a:=a*2]其他(旧)编程语言中也有赋值表达式,想转行的程序员Python我们可以(很多)使用这个新特性。在它们成为过去时掌握赋值表达式。6.F-string2.0:调试Pythonf-string的工具改变了游戏规则。F-string是一种格式化字符串的语法,简洁易读。使用语法f'{expr}',在引号前添加f,并将表达式括在花括号中,您可以将表达式插入到字符串中。Python更新后,等号“=”可用作f字符串f'{expr=}'语法中的格式限定符。输出字符串为变量名=变量值,如下:#DON'TDOTHIS!a=5d=[b:=a+1,a:=b-1,a:=a*2]用于编译文件或调试(Debug)的需要,经常需要指定变量值。F弦使调试变得轻而易举。当然,在致力于Python3.8编程之前,你需要掌握Python的基本功能(essential)。这就是Python的6个新特性,每个Python新手都可以从中受益。
