python - IndexError:列表分配索引超出范围(Python)
问题描述
请考虑以下代码:
def getString(absA, y):
i = 0
t = list(range(100))
while absA > 0:
t[i] = absA % y
absA = absA / y
i = i + 1
for j in range(len(t)):
if t[j] == '10':
t[j] = 'A'
elif t[j] == '11':
t[j] = 'B'
elif t[j] == '12':
t[j] = 'C'
elif t[j] == '13':
t[j] = 'D'
elif t[j] == '14':
t[j] = 'E'
elif t[j] == '15':
t[j] = 'F'
return t
bitString = getString(abs(eval(a)), eval(b))
我想这是一些我不知道的简单事情。为什么这个列表超出范围?
解决方案
您超出范围是因为此循环特别从不检查是否i
可能超出 list 的范围t
。
while absA > 0:
t[i] = absA % y
absA = absA / y
i = i + 1
代码注释:
您对表格的比较:
if t[j] == '10': ...
不会做你希望他们做的事。该元素t[j]
是数字而不是字符串。
推荐阅读
- r - 拒绝采样从 Cauchy 样本中生成 Normal 样本
- kubernetes - TCP Ingress 与 Istio 0.8 和 v1alpha3 网关
- javascript - ReasonML javascript 记录字段
- ios - Swift:从 AppDelegate 标签更新 UILabel 不会更新
- php - 在codeigniter中使用foreach循环更新字段不起作用
- django - 有没有办法使用 CLI 在 django2 项目上发布数据?
- r - 在一个data.table中为不同data.frame R中的每个类别计算变量
- python - 带有 Bokeh 帮助的 CustomJS 回调(不知道任何 JS!)
- matplotlib - 使用最大值在 SageMath 中绘制三个方程组的方向场
- .htaccess - GoDaddy 和 .htaccess 301 在子文件夹中重定向