如何使用Python整数文字的数字分隔符?

问题描述 投票:23回答:4

有没有办法在Python代码中对数字进行分组以提高代码的可读性?我尝试过'_这些是其他语言的digit separators,但没有用。

一个奇怪的操作员将左手边与右手边连接在一起也可以解决问题。

python literals
4个回答
29
投票

几年后更新: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.7python3.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

5
投票

目前Python中没有千位分隔符,但您可以使用locale模块将带有此类分隔符的字符串转换为int:

import locale
locale.setlocale(locale.LC_ALL, '')
locale.atoi("1,000,000")

3
投票

Python中没有这样的功能,但建议将其集成到未来。

您可以在PEP515中查看该提案。


2
投票

我在python中看到的最接近的是12 * 1000 * 1000,这不是理想的,但如果需要12000000则可能很有用。但是请注意,在C语言中,这些是等效的,因为在编译时它将两者转换为相同的东西,python可能不会共享此优化。

© www.soinside.com 2019 - 2024. All rights reserved.