Ошибка | IndexError

Выдает ошибку IndexError.

for i in range(27):
    ch=i
    sys=3
    p=''
    
    while ch>0:
        p=str(ch%sys)+p
        ch//=sys
        a=p
    print(a[0])

Ответы (2 шт):

Автор решения: Hydro_genium

При ch = 0 цикл while не выполняется, значит не объявляется переменная a и тогда её нельзя вывести в строке print(a[0]). Можете, например, начинать цикл for с единицы.

for i in range(1, 27):
    ch=i
    sys=3
    p=''
    
    while ch>0:
        p=str(ch%sys)+p
        ch//=sys
        a=p
    print(a[0])
→ Ссылка
Автор решения: Tehnorobot
  1. У вас в коде в цикле for i in range(27): первым значением i является 0, следовательно в данном цикле while ch>0:, где ch=i, не будет проходить в цикл, а значит в print(a[0]) вы пытаетесь напечатать несуществующую переменную. Решение: переопределите переменную a за цикл while или измените сам цикл while так, чтоб она переменная a определялась до print(a[0]).

  2. list index out of range

Она возникает, когда вы пытаетесь обратиться к несуществующующему индексу.

Решение: попробуйте изменить код так, чтоб в print(a[0]) не передовался пустой список, так как в пустом списке нет нулевого индекса. Например, вы можете в циклfor i in range(27): изменить так for i in range(1, 27):

→ Ссылка