Je fait un jeu de pendu mais j'ai une erreur de varriabale.

[Résolu]
Signaler
Messages postés
84
Date d'inscription
dimanche 13 septembre 2020
Statut
Membre
Dernière intervention
1 juillet 2021
-
Messages postés
84
Date d'inscription
dimanche 13 septembre 2020
Statut
Membre
Dernière intervention
1 juillet 2021
-
Bonjour,
Je fais un jeu de pendue (il est loin d'être fini), mais pour savoir si la première étape du programme marché j'ai affiché le mots à trouver et quand je mets le mots que je devrait trouver, le programme me dit que je ne l'ai pas trouver.
Pouvez vous m'aider ?
Voici mon programme :
import random
import time
with open("Pendu.txt", "r+") as file:
    word_lists = file.readlines()
    word_lists_choice = random.choice(word_lists)
    print(word_lists_choice)
answer = input("Quel est le mots ?")

if answer == "word_list_choice":
    print("Bravo tu as trouver le mots !")
    time.sleep(5)
    file.close()

if answer != "word_list_choice":
    print("Tu n'as pas trouver le mots")
    time.sleep(5)
    file.close()


Merci !
(Normalement vous n'avez pas besoin du fichier texte pour m'aider, mais si vous le voulais je vous le donnerai volontiers).

3 réponses

Messages postés
32574
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
4 août 2021
7 854
Bonjour,

Plusieurs soucis.

if answer == "word_list_choice": 
là tu ne testes pas la variable, avec les " " tu testes une chaine qui contient le nom de la variable

et en plus le nom de variable n'est pas le bon ! regardes plus haut quand tu la crées.

après une petite particularité d'une variable récupérée d'un fichier, la valeur de la variable comporte le caractère fin de ligne derrière la chaine, il faut l'enlever.


Messages postés
84
Date d'inscription
dimanche 13 septembre 2020
Statut
Membre
Dernière intervention
1 juillet 2021

Merci j'ai réussi a modifier quelque truc, mais pas tout :


import random
import time
with open("Pendu.txt", "r+") as file:
    word_lists = file.readlines()
    word_lists_choice = random.choice(word_lists)
    print(word_lists_choice)
answer = input("Quel est le mots ?")

if answer == word_list_choice:
    print("Bravo tu as trouver le mots !")
    time.sleep(5)
    file.close()

if answer != word_list_choice:
    print("Tu n'as pas trouver le mots")
    time.sleep(5)
    file.close()



Mais je n'ai pas compris ce que vous m'avais dit enfin un peu mais je ne sait pas le faire :
après une petite particularité d'une variable récupérée d'un fichier, la valeur de la variable comporte le caractère fin de ligne derrière la chaine, il faut l'enlever.

Pouvez vous me montrer ?
Merci
Messages postés
32574
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
4 août 2021
7 854
en 9 et 14 tu n'as pas corrigé le nom de la variable comme crée en 5 !

tu devrais rajouter un
print(word_lists)
tu verras que chaque valeur se termine par
\n
un
.rstrip()
peut l'enlever (il existe différentes méthodes pour supprimer ce caractère fin de ligne)

et on peut améliorer ton code en :
import random
import time
with open("Pendu.txt", "r+") as file:
    word_lists = file.readlines()
    print(word_lists)
    word_lists_choice = random.choice(word_lists)
    word_lists_choice = word_lists_choice.rstrip()
    print(word_lists_choice)
    answer = input("Quel est le mot ? ")

    if answer == word_lists_choice:
        print("Bravo tu as trouvé le mot !")
    else: 
        print("Tu n'as pas trouvé le mot")
    time.sleep(5) 


Messages postés
84
Date d'inscription
dimanche 13 septembre 2020
Statut
Membre
Dernière intervention
1 juillet 2021

Merci beaucoup !