温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python 3.5 和其他版本有什么区别

发布时间:2021-06-16 09:21:21 来源:亿速云 阅读:218 作者:chen 栏目:编程语言

这篇文章主要介绍“Python 3.5 和其他版本有什么区别”,在日常操作中,相信很多人在Python 3.5 和其他版本有什么区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python 3.5 和其他版本有什么区别”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Python 3.5 在 2015 年首次发布,尽管它已经发布了很长时间,但它引入的许多特性都没有被充分利用,而且相当酷。下面是其中的三个。

@ 操作符

@ 操作符在 Python 中是独一无二的,因为在标准库中没有任何对象可以实现它!它是为了在有矩阵的数学包中使用而添加的。

矩阵有两个乘法的概念。元素积是用 * 运算符完成的。但是矩阵组合(也被认为是乘法)需要自己的符号。它是用 @ 完成的。

例如,将一个“八转”矩阵(将轴旋转 45 度)与自身合成,就会产生一个四转矩阵。

import numpy hrt2 = 2**0.5 / 2 eighth_turn = numpy.array([     [hrt2, hrt2],     [-hrt2, hrt2] ]) eighth_turn @ eighth_turn
array([[ 4.26642159e-17,  1.00000000e+00],        [-1.00000000e+00, -4.26642159e-17]])

浮点数是不精确的,这比较难以看出。从结果中减去四转矩阵,将其平方相加,然后取其平方根,这样就比较容易检查。

这是新运算符的一个优点:特别是在复杂的公式中,代码看起来更像基础数学:

almost_zero = ((eighth_turn @ eighth_turn) - numpy.array([[0, 1], [-1, 0]]))**2 round(numpy.sum(almost_zero) ** 0.5, 10)
0.0

参数中的多个关键词字典

Python 3.5 使得调用具有多个关键字-参数字典的函数成为可能。这意味着多个默认值的源可以与更清晰的代码”互操作“。

例如,这里有个可笑的关键字参数的函数:

def show_status(     *,     the_good=None,     the_bad=None,     the_ugly=None,     fistful=None,     dollars=None,     more=None ):     if the_good:         print("Good", the_good)     if the_bad:         print("Bad", the_bad)     if the_ugly:         print("Ugly", the_ugly)     if fistful:         print("Fist", fistful)     if dollars:         print("Dollars", dollars)     if more:         print("More", more)

当你在应用中调用这个函数时,有些参数是硬编码的:

defaults = dict(     the_good="You dig",     the_bad="I have to have respect",     the_ugly="Shoot, don't talk", )

从配置文件中读取更多参数:

import json others = json.loads(""" { "fistful": "Get three coffins ready", "dollars": "Remember me?", "more": "It's a small world" } """)

你可以从两个源一起调用这个函数,而不必构建一个中间字典:

show_status(**defaults, **others)
Good You dig Bad I have to have respect Ugly Shoot, don't talk Fist Get three coffins ready Dollars Remember me? More It's a small world

os.scandir

os.scandir 函数是一种新的方法来遍历目录内容。它返回一个生成器,产生关于每个对象的丰富数据。例如,这里有一种打印目录清单的方法,在目录的末尾跟着  /:

for entry in os.scandir(".git"):     print(entry.name + ("/" if entry.is_dir() else ""))
refs/ HEAD logs/ index branches/ config objects/ description COMMIT_EDITMSG info/ hooks/

到此,关于“Python 3.5 和其他版本有什么区别”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI