Почему я выхожу за границы списка?

Рейтинг: -1Ответов: 1Опубликовано: 04.04.2023
number=int(input('Number: '))
array=[] 
array.append(number % 8)
tmp = [] 
tmp.append(number // 8)
flag = 0
print(array,tmp)
for i in range(1,100):
    if tmp[i] // 8: 
        tmp.append(tmp[i] // 8)
        array.append(tmp[i] % 8)
print(array,tmp) 

Вывод:

Number: 1407
[7] [175]
       Traceback (most recent call last):
       File "c:\Users\Northon\Documents\10 % 3.py", line 9, in <module>
         if tmp[i] // 8:
            ~~~^^^
    IndexError: list index out of range

Ответы

▲ 0

Немного оптимизировал

number=int(input('Number: '))
array=[] 
array.append(number % 8)
tmp = [] 
tmp.append(number // 8)
flag = 0
print(array,tmp)
i = 0
while tmp[i] > 0:
    array.append(tmp[i] % 8)
    tmp.append(tmp[i] // 8)
    i += 1
print(array,tmp)