考虑以下Python 3代码:
a = 5349234832
for i in range(6):
print(int(str(a)[0:i]))
运行此代码时,出现错误“ ValueError:int()以10为底的无效文字”。另一方面,类似这样的东西也可以很好地工作:
print(int(str(a)[0:5]))
(如您所料,它返回53492。)我认为错误可能是变量i不是int,所以我尝试了:
a = 5349234832
for i in range(6):
print(int(str(a)[0:int(i)]))
这将引发相同的错误。怎么了?
答案 0 :(得分:2)
i
在for循环的第一次迭代中等于0
。 str(a)[0:0]
返回空字符串(因为没有要分割的内容)。 int('')
引发您的ValueError。如果要避免i
等于0
,请从1开始范围:
a = 5349234832
for i in range(1, 6):
print(int(str(a)[0:i]))