如何以可读的方式指定大整数文字?

Gar*_*ary 12 python

我想指定一个大整数序列(有很多零),如:

a = [1e13, 1e14, 1e19, ...]
Run Code Online (Sandbox Code Playgroud)

我的直觉是使用科学记数法.但在python中,它是一个浮点而不是整数.有没有一种简单的方法在python中编写这些整数文字而不写入所有的零,因为确保零的数量是正确的噩梦.

我相信我可以使用浮点数转换为整数int,但只是想知道是否有更好的方法?

ale*_*inn 8

使用*and **,它并不美观,但会给出正确的结果。

print(2e10)
20000000000.0

print(2*10**10)
20000000000
Run Code Online (Sandbox Code Playgroud)

您还可以生成一个完整列表,如下所示:

result = []
for i in range(5):
    result.append(1*10**i)


>>> result
[1, 10, 100, 1000, 10000]
Run Code Online (Sandbox Code Playgroud)

如果你真的想使用科学记数法,那么

result = []
for n in range(5):
    result.append(int(float(f"1e{n}"))) #converting to int directly gives: ValueError: invalid literal for int() with base 10: '1e0'



>>> result
[1, 10, 100, 1000, 10000]
Run Code Online (Sandbox Code Playgroud)


vis*_*ell 7

对于未来的观众。

由于PEP 515将包含python 3.6 。

所以你可以做a = 1_000_000_000_000更好的代码可读性。