num_array = list()
num = int(raw_input("Enter how many elements you want:"))
print 'Enter numbers in array: '
for i in range(int(num)):
n = raw_input("num :")
num_array.append(int(n))
print 'ARRAY: ',num_array
b = 0
count = 0
while b< num -1 or b>0:
count = count+1
if num_array[b]!= 0:
b = b + num_array[b]
else:
b = (b + num_array[b])*2
print count
我正在尝试将数组作为输入和d存储索引值,该变量正在更新其值。但是我收到列表超出范围的错误
请帮帮我
答案 0 :(得分:1)
您的情况while b < num-1 or b>0
没有意义。对于大于or b>0
的所有值,True
部分为num-1
。相反,您应该使用and
:
while b < num-1 and b > 0:
或更短,使用比较链:
while 0 < b < num-1:
另外,请注意,数组索引从0
到num-1
(num
是长度),所以实际上条件应该是(不测试):
while 0 <= b < num: