python - 为什么在这个 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)]))
但是,这会引发相同的错误。这里出了什么问题?
解决方案
i
将等于0
for 循环的第一次迭代。str(a)[0:0]
返回空字符串(因为没有要切片的内容)。int('')
引发你的 ValueError。
如果您想避免i
equaling 0
,请从 1 开始范围:
a = 5349234832
for i in range(1, 6):
print(int(str(a)[0:i]))
推荐阅读
- c# - 从列表中选择一个随机项目 C# OOP
- javascript - html.erb 模板中的 v-model 渲染 function () { [native code] }
- python - Python字符串从第一个非零字符拆分
- ruby - 如何在fluentd中使用record_accessor插件助手的accessor.set(record, value)方法?
- python - 连续打印一定次数的东西
- python - 如何将获取的链接(来自使用 Beatuiful Soup)存储到 Python 中的列表中?
- regex - 我正在尝试使用包含“awk”的shell脚本来针对文件运行
- java - 错误:无法为抽象类“GoogleServicesTask”创建代理类
- r - KeyError: 'PROJ_LIB' 尝试在 Rmd 中运行 Python 块时
- javascript - 如何在 Chart JS 中使用带有两个重叠 x 轴的工具提示?