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 .
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 " " »