几年后的更新: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
目前Python中没有千位分隔符,但是你可以使用locale
模块将带有这种分隔符的字符串转换为整数:
import locale
locale.setlocale(locale.LC_ALL, '')
locale.atoi("1,000,000")
在Python中,最接近的东西是12 * 1000 * 1000
,虽然不理想,但如果需要12000000
,它还是有用的。请注意,尽管在C语言中这两种写法是等价的,因为编译时会将它们都转换为同一件事,但Python可能不会共享此优化。
12e6
。 - Utkan Gezerdis.dis(lambda : 100 * 200 * 300)
。 - mgilsonx * 100 * 1000 * 1000
,那么它不会折叠(因为如果 x
不是 int
类型,x * 100
可能不会返回 int
)。但是 100 * 1000 * 1000 * x
就可以折叠,因为从左到右的计算顺序使用已知的常量。 - ShadowRanger
int('100,000'.replace(',', ''))
可以吗? - Nizam Mohamed