Как исправить «IndexError: список индексов вне диапазона» в Python - PullRequest
0 голосов
/ 10 мая 2019

Моя проблема в том, что когда я устанавливаю цикл for для просмотра списка, он не работает, потому что он выходит за пределы диапазона, даже когда я начинаю с 0.

Я попытался изменить диапазон цикла for, но он не работает.

Code = input("Enter your Key code: ")

Code = list(Code)

message = input("Enter your message: ")

message = list(message)

for i in (0, len(message)):
    if message[i] == Code[0]:
        message[i] = 'a'

Я думал, что это сработает, но в начале цикла for он выходит из строя.

Ответы [ 3 ]

1 голос
/ 10 мая 2019
for i in (0, len(message)):

Вероятно, должно быть

for i in range(len(message)):

Вы забыли range

0 голосов
/ 10 мая 2019

Вы сделали опечатку

это должно быть примерно так:

для i в диапазоне (len (сообщение))

Ваш цикл for является turple, поэтому он всегда будетначать с 1+ того, что вы хотите

0 голосов
/ 10 мая 2019

Вы хотите сделать:

for i in range(len(message)):
    ...

(0, len(message)) - это кортеж.Повторение этого даст вам 0, затем len(message) (который всегда будет на 1 больше, чем самый большой допустимый индекс в вашем списке), следовательно, вызывая IndexError.

Вы также, вероятно, захотите проверить это Code содержит как минимум 1 символ, в противном случае Code[0] также выдаст вам IndexError.

Code = list(Code) or '?'

установит Code в '?', если Code == ''.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...