1.7 KiB
1.7 KiB
Python 中的新特性:数字文本中的下划线
原文:https://www.blog.pythonlibrary.org/2017/01/11/new-in-python-underscores-in-numeric-literals/
Python 3.6 增加了一些有趣的新特性。我们将在本文中看到的一个来自于 PEP 515:数字文字中的下划线。正如 PEP 的名字所暗示的那样,这基本上给了你在逗号通常所在的地方写长数字加下划线的能力。换句话说, 1000000 现在可以写成 1_000_000 。让我们来看一些简单的例子:
>>> 1_234_567
1234567
>>>'{:_}'.format(123456789)
'123_456_789'
>>> '{:_}'.format(1234567)
'1_234_567'
第一个例子展示了 Python 如何解释包含下划线的大数。第二个例子演示了我们现在可以给 Python 一个字符串格式化程序,即“_”(下划线),来代替逗号。结果不言自明。
计算时,包含下划线的数字文字的行为与普通数字文字相同:
>>> 120_000 + 30_000
150000
>>> 120_000 - 30_000
90000
Python 文档和 PEP 还提到可以在任何基本说明符后使用下划线。以下是摘自 PEP 和文档的几个示例:
>>> flags = 0b_0011_1111_0100_1110
>>> flags
16206
>>> 0x_FF_FF_FF_FF
4294967295
>>> flags = int('0b_1111_0000', 2)
>>> flags
240
有一些关于下划线的注意事项需要提及:
- 您只能使用一个连续的下划线,并且必须在数字之间和任何基本说明符之后
- 不允许使用前导下划线和尾随下划线
这是 Python 中一个有趣的新特性。虽然我个人在我目前的工作中没有这方面的任何用例,但希望你在自己的工作中会有一个。