Gérer IndexError

Fermé
aissa - 7 juin 2018 à 00:44
 aissa - 7 juin 2018 à 01:13
Bon je débute en python . Vous allez peut-être me trouver bête, mais je veux savoir si c'est possible de gérer l'erreur IndexError .

Je comprend l'erreur, il survient lorsqu'on a déjà parcouru toute la boucle et qu'il y a plus d'indice que de nombre de tour de boucle à parcourir (enfin j'espère l'avoir bien expliqué ).
Malheureusement dans mon exercice à moi, c'est un peu le cas , et je ne sais plus comment la gérer .

Pour faire court c'est comme le jeu télévisé « motus » mais ici l'utilisateur ne connait pas le nombre de lettre total du mot (le programmeur non plus car c'est un mot choisit au harsard dans une liste ) . Quand la lettre à une position x est correcte il doit l'afficher, si elle incorrecte il affiche *
Voici ce que j'ai fait :



def lettre_trouve ():
    """ Affiche les lettres correctes à la position x du mot à déviner , et affiche * si la lettre n'est pas la bonne"""
    result = ""
    if len(mot_joueur) > 8 :
        print ("Il faut maximum 8 lettres ! Réessayez")
    else :
        for i in range(1, len(mot_a_trouve)+1):
            if mot_joueur[i] == mot_a_trouve[i] :
                result += mot_joueur[i]
            else :
                result += "*"
    return result



Donc le code marche si les mots ont la même longueur, mais affiche IndexError quand les mots n'ont pas la même longueur .

Pouvez-vous m'éclaircir sur comment gérer cela ?

Merci !

1 réponse

Je ne veux pas lever d'exception . Je veux en quelque sorte dire au programme :
« Si toutes les lettres ont été vérifiés dans l'un des mots et qu'il y en a encore dans le second : ne met rien ou remplace ces lettres par " " »

Merci!
0