Python erreur: “IndexError: string index out of range”

Je suis actuellement en apprentissage de python à partir d'un livre intitulé " Python pour le débutant absolu (troisième édition)'. Il y a un exercice dans le livre, qui décrit un code pour un jeu du pendu. J'ai suivi le long avec ce code, cependant, je reçois en retour une erreur dans le milieu du programme.

Voici le code qui est à l'origine du problème:

if guess in word:
    print("\nYes!", guess, "is in the word!")

    # Create a new variable (so_far) to contain the guess
    new = ""
    i = 0
    for i in range(len(word)):
        if guess == word[i]:
            new += guess
        else:
            new += so_far[i]
        so_far = new

C'est aussi l'erreur, il renvoie:

new += so_far[i]
IndexError: string index out of range

Quelqu'un pourrait-il m'aider à sortir de ce qui ne va pas et ce que je peux faire pour le réparer?

edit: j'ai initialisé le so_far variable comme ceci:

so_far = "-" * len(word)
C'est mineur et non reliés à votre question, mais vous n'avez pas besoin de la i = 0. Pour la boucle définit automatiquement la variable de boucle quand il commence même si je n'est pas encore définie.
Ouais votre droite. Je ne me souviens pas pourquoi j'ai bloqué :S

OriginalL'auteur Darkphenom | 2012-01-03