From 8e9d26fef6c754de0d0c81f39629d8201f292f4b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 1 Jun 2021 20:20:15 +0800 Subject: [PATCH] PRF @geekpi --- ...ther improvements Python 3.5 brought us.md | 38 +++++++++---------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/translated/tech/20210517 Convenient matrices and other improvements Python 3.5 brought us.md b/translated/tech/20210517 Convenient matrices and other improvements Python 3.5 brought us.md index 23eb0d0776..d757a161b5 100644 --- a/translated/tech/20210517 Convenient matrices and other improvements Python 3.5 brought us.md +++ b/translated/tech/20210517 Convenient matrices and other improvements Python 3.5 brought us.md @@ -3,16 +3,18 @@ [#]: author: (Moshe Zadka https://opensource.com/users/moshez) [#]: collector: (lujun9972) [#]: translator: (geekpi) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) Python 3.5 带给我们的方便的矩阵以及其他改进 ====== -探索一些未被充分利用但仍然有用的 Python 特性。 -![Hacker code matrix][1] -这是关于首次出现在 Python 3.x 版本中的特性的系列文章的第六篇。Python 3.5 在 2015 年首次发布,尽管它已经发布了很长时间,但它引入的许多特性都没有被充分利用,而且相当酷。下面是其中的三个。 +> 探索一些未被充分利用但仍然有用的 Python 特性。 + +![](https://img.linux.net.cn/data/attachment/album/202106/01/201953lua9t9f3vvwqbqet.jpg) + +这是 Python 3.x 首发特性系列文章的第六篇。Python 3.5 在 2015 年首次发布,尽管它已经发布了很长时间,但它引入的许多特性都没有被充分利用,而且相当酷。下面是其中的三个。 ### @ 操作符 @@ -22,7 +24,6 @@ Python 3.5 带给我们的方便的矩阵以及其他改进 例如,将一个“八转”矩阵(将轴旋转 45 度)与自身合成,就会产生一个四转矩阵。 - ``` import numpy @@ -32,23 +33,24 @@ eighth_turn = numpy.array([ [-hrt2, hrt2] ]) eighth_turn @ eighth_turn +``` -[/code] [code] - +``` 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) +``` -[/code] [code]` 0.0` +``` + 0.0 ``` ### 参数中的多个关键词字典 @@ -57,7 +59,6 @@ Python 3.5 使得调用具有多个关键字-参数字典的函数成为可能 例如,这里有个可笑的关键字参数的函数: - ``` def show_status( *, @@ -84,7 +85,6 @@ def show_status( 当你在应用中调用这个函数时,有些参数是硬编码的: - ``` defaults = dict( the_good="You dig", @@ -95,7 +95,6 @@ defaults = dict( 从配置文件中读取更多参数: - ``` import json @@ -110,10 +109,11 @@ others = json.loads(""" 你可以从两个源一起调用这个函数,而不必构建一个中间字典: +``` +show_status(**defaults, **others) +``` ``` -`show_status(**defaults, **others)`[/code] [code] - Good You dig Bad I have to have respect Ugly Shoot, don't talk @@ -126,13 +126,12 @@ others = json.loads(""" `os.scandir` 函数是一种新的方法来遍历目录内容。它返回一个生成器,产生关于每个对象的丰富数据。例如,这里有一种打印目录清单的方法,在目录的末尾跟着 `/`: - ``` for entry in os.scandir(".git"): print(entry.name + ("/" if entry.is_dir() else "")) +``` -[/code] [code] - +``` refs/ HEAD logs/ @@ -150,7 +149,6 @@ for entry in os.scandir(".git"): Python 3.5 在六年前就已经发布了,但是在这个版本中首次出现的一些特性非常酷,而且没有得到充分利用。如果你还没使用,那么将他们添加到你的工具箱中。 - -------------------------------------------------------------------------------- via: https://opensource.com/article/21/5/python-35-features @@ -158,7 +156,7 @@ via: https://opensource.com/article/21/5/python-35-features 作者:[Moshe Zadka][a] 选题:[lujun9972][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出