【问题标题】:IndexError: list assignment index out of range (Python) [duplicate]IndexError:列表分配索引超出范围(Python)[重复]
【发布时间】:2019-08-08 10:14:29
【问题描述】:

请考虑以下代码:

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))

我想这是一些我不知道的简单事情。为什么这个列表超出范围?

【问题讨论】:

  • 你想对代码做什么?

标签: python list


【解决方案1】:

您超出范围是因为此循环尤其从不检查 i 是否可能超出列表 t 的范围。

while absA > 0:
    t[i] = absA % y
    absA = absA / y
    i = i + 1  

代码注释:

您对表格的比较:

if t[j] == '10': ...

不会做你希望他们做的事。元素t[j] 是一个数字而不是字符串。

【讨论】:

    【解决方案2】:

    while absA > 0: 是一个无限循环,在旋转太多之后返回你得到的错误。这是一个逻辑错误。

    【讨论】:

      猜你喜欢
      • 2012-06-23
      • 2018-10-21
      • 2020-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-19
      • 1970-01-01
      • 2022-11-27
      相关资源
      最近更新 更多