有没有办法在Python代码中对数字进行分组以提高代码的可读性?我尝试了'
和_
digit separators的其他语言,但没有用。
将左手边与右手边连接在一起的奇怪操作符也可以解决。
答案 0 :(得分:27)
几年后更新:Python 3.6现在支持PEP515,因此您可以使用_进行浮点数和整数字的可读性改进。
Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 1_1000
11000
>>>
对于历史参考,您可以查看严格定义的词法分析python2.7,python3.5 ......
对于python3.6.0a2及更早版本,您应该收到类似于以下内容的错误消息:
Python 3.6.0a2 (v3.6.0a2:378893423552, Jun 13 2016, 14:44:21)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 1_000
File "<stdin>", line 1
1_000
^
SyntaxError: invalid syntax
>>> amount = 10_000_000.0
File "<stdin>", line 1
amount = 10_000_000.0
^
SyntaxError: invalid syntax
答案 1 :(得分:5)
目前Python中没有千位分隔符,但您可以使用locale
模块将带有此类分隔符的字符串转换为int:
import locale
locale.setlocale(locale.LC_ALL, '')
locale.atoi("1,000,000")
答案 2 :(得分:3)
Python中没有这样的功能,但建议将其集成到未来。
您可以在PEP515。
中查看提案答案 3 :(得分:2)
我在python中看到的最接近的是12 * 1000 * 1000
,这不是理想的,但如果需要12000000
则可能很有用。但是请注意,在C语言中,这些是等效的,因为在编译时它将两者转换为相同的东西,python可能不会共享此优化。