首页 > 解决方案 > 为什么在这个 for 循环中嵌套 print(int(str)) 会导致 Python 3 中的错误?

问题描述

考虑以下 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)]))

但是,这会引发相同的错误。这里出了什么问题?

标签: python

解决方案


  • i将等于0for 循环的第一次迭代。
  • str(a)[0:0]返回空字符串(因为没有要切片的内容)。
  • int('')引发你的 ValueError。

如果您想避免iequaling 0,请从 1 开始范围:

a = 5349234832
for i in range(1, 6):
    print(int(str(a)[0:i]))

推荐阅读