Mi problema es que cuando configuro un bucle for para mirar a través de una lista, no funciona porque está fuera de rango, incluso cuando comienzo en 0.

He intentado cambiar el rango del bucle for pero no funciona.

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'

Pensé que funcionaría, pero al comienzo del ciclo for se descompone.

-1
Z3R0 10 may. 2019 a las 02:29

3 respuestas

La mejor respuesta
for i in (0, len(message)):

Probablemente debería ser

for i in range(len(message)):

Olvidó el range

1
rdas 9 may. 2019 a las 23:34

Quieres hacer:

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

(0, len(message)) es una tupla. Iterar sobre esto le dará 0, luego len(message) (que siempre será 1 más grande que el índice válido más grande en su lista), causando un IndexError.

Probablemente también desee comprobar que Code tiene al menos 1 carácter, de lo contrario Code[0] también le dará un IndexError.

Code = list(Code) or '?'

Configurará Code en '?' si Code == ''.

0
CoffeeTableEspresso 9 may. 2019 a las 23:35

Hiciste un error tipográfico

Debería ser así:

Para i en rango (len (mensaje))

Su bucle for es turple, por lo que siempre comenzará desde 1+ de lo que desea

0
Rektime 10 may. 2019 a las 07:19