@HelvegenFox

Почему возникает ошибка индекса при обращении к строке?

Доброго всем времени суток.
Решаю задачу по Python на декодирование строки.
s_zip = "r12t1x1N15P5i17L2N2u4D8e18V1N1e1N14f1D4H10k2Y19n8R18T13a6B14G18e10L6k20q3l1"
s_out = ""
print(s_zip)
part_of_string = ""
count_str = ""
count = 0
for i in range(0, len(s_zip)):
    j = i+1
    if s_zip[i].isalpha():
        part_of_string = s_zip[i]
    if s_zip[i].isdigit() and s_zip[j].isalpha():
        count_str += s_zip[i]
        count = int(count_str)
        while count < 0:
            s_out += part_of_string
            count -= 1
        count_str = ""
    if s_zip[i].isdigit() and s_zip[j].isdigit():
        count_str += s_zip[i]
print(s_out)


При запуске ругается на s_zip[j].isalpha() ошибкой IndexError: string index out of range
Помогите понять причину, пожалуйста.
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
@sash999
просто админ из деревни
На последней итерации вы вылезаете за строку, о чём вам открытым текстом и говорят.
Допустим, длина строки - 10. Последняя итерация - i=9. А j=i+1, то есть 10. И ваша конструкция s_zip[j] и вызывает ошибку.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы