索引超出范围错误,python 3.5。只发生在'while'循环中

时间:2015-10-01 21:19:29

标签: python loops while-loop indexoutofboundsexception python-3.5

在为我的朋友编写二进制转换程序的同时,我使用X[N] = Y命令X是一个列表,N的索引号是列表(由名为Bit的变量表示)和Y是我分配给列表N中索引X中的变量的值。

嗯,我应该只是把代码和解释,但基本上它是说索引超出范围,而代码Numbers[Bit] = 0Number[Bit] = 1在while循环中,但它适用于其他地方在代码中。变量Bit等于整数7,列表Numbers包含变量abcd,{{1} },efg所有分开的含义都有0-7个索引。我尝试使用h值为0,这也不起作用。但是,只要Bit代码部分放在while循环之外,代码就可以正常工作。有什么想法吗?

Numbers[Bit]

1 个答案:

答案 0 :(得分:0)

您正在与Input > Num进行比较,Input >= Num

要按正确的顺序获取位,您可以使用:

def loop():
    number = int(input("What Number do you want to convert?" ))
    bits = [(number>>b) & 1 for b in range(7,-1,-1)]
    print(bits)