我想知道为什么以下变量被视为数字?
a = 1_000_000
print (a)
1000000
print(a)
不应该返回1_000_000
吗?
答案 0 :(得分:24)
在Python 3.6(和PEP-515)中,引入了一个新的大数字便捷表示法,它使您可以在数字文字中划分数字组,以便于阅读。
使用示例:
a = 1_00_00 # you do not need to group digits by 3!
b = 0xbad_c0ffee # you can make fun with hex digit notation
c = 0b0101_01010101010_0100 # works with binary notation
f = 1_000_00.0
print(a,b,c,f)
10000
50159747054
174756
100000.0
print(int('1_000_000'))
print(int('0xbad_c0ffee', 16))
print(int('0b0101_01010101010_0100',2))
print(float('1_000_00.0'))
1000000
50159747054
174756
100000.0
A = 1__000 # SyntaxError: invalid token
答案 1 :(得分:3)
为了方便起见,Python允许您在数字上加下划线。它们用于分隔数字组,就像逗号在非编程中一样。下划线在数字上被完全忽略,就像注释一样。所以这个:
x = 1_000_000
被解释为与此相同:
x = 1000000
但是,您不能像这样将两个下划线紧挨着:
x = 1__000__000 #SyntaxError
答案 2 :(得分:3)
在英语国家中,逗号通常用作千位分隔符,而在许多其他国家/地区中,句点用作千位分隔符。考虑到不同的约定,以及在逗号中逗号和句点都用于Python中的其他事实,因此决定使用下划线作为分隔符。