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

如何为Python整数文本使用数字分隔符?,python,literals,Python,Literals,有没有办法将Python代码中的数字分组以提高代码的易读性?我试过其他一些语言的'和\,但没有用 一个将左手边和右手边连接起来的奇怪操作符也可以解决这个问题。几年后更新:Python 3.6现在支持,因此您可以使用u来提高浮点和整数文字的可读性 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" o

有没有办法将Python代码中的数字分组以提高代码的易读性?我试过其他一些语言的
'
\
,但没有用


一个将左手边和右手边连接起来的奇怪操作符也可以解决这个问题。

几年后更新:Python 3.6现在支持,因此您可以使用u来提高浮点和整数文字的可读性

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
>>>
作为历史参考,您可以查看词法分析中的严格定义

对于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
Python 3.6.0a2(v3.6.0a2:378893423552,2016年6月13日,14:44:21)
[GCC 4.2.1(苹果公司建造5666)(dot 3)]关于达尔文
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>> 1_000
文件“”,第1行
1_000
^
SyntaxError:无效语法
>>>金额=10_000_000.0
文件“”,第1行
金额=10_000_000.0
^
SyntaxError:无效语法

Python中没有此类函数,但建议将来将其集成


您可以在中看到建议。

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

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

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

你能说得更具体些吗。。举个例子?我想他想用31Ɵu 926替换整数文本31415926,例如。我不确定这是否实现了。有建议,但没有实现
int('100000'。替换(',','')
可以吗?Guido在今年的pycon keynote中提到了这一点,它将出现在3.6版本中。如果它们是文本,python将折叠常量。不过它不会对符号进行任何折叠。对于1200万,我会使用并推荐
12e6
@ThoAppelsin——这取决于您希望值是
float
还是
int
…@TemporalWolf——您可以通过反汇编源代码来检查这些内容:
dis.dis(lambda:100*200*300)
@mgilson:事实上,这是秩序非常重要的事情之一。如果使用
x*100*1000*1000
,则它不会折叠(因为
x*100
可能不会返回
int
,如果
x
不是
int
)。但是
100*1000*1000*x
会折叠,因为从左到右的求值是使用已知常量的。