Problème d'importation de modules

Fermé
Tatane600 Messages postés 7 Date d'inscription samedi 3 octobre 2015 Statut Membre Dernière intervention 19 mars 2016 - 24 févr. 2016 à 17:50
Tatane600 Messages postés 7 Date d'inscription samedi 3 octobre 2015 Statut Membre Dernière intervention 19 mars 2016 - 25 févr. 2016 à 11:56
Bonjour à tous !!

J'ai commencé la programmation en python il y a quelques semaines et je suis en train de réaliser un pendu avec enregistrement des scores. Ainsi, j'ai créé un module avec les fonctions nécessaires mais je n'arrive pas à l'importer.

Voici mon code :

nom = str(input("Votre nom : "))
nombre_de_chance = 8
résultat = 0
continuer_partie = "true"
while continuer_partie == "true":
    mot_a_trouvé = mot()
    print("Le mot a trouver comporte {} lettres".format(len(mot_a_trouvé)))
    mot_trouvé = "false"
    while mot_trouvé == "false":
        lettre_choisie = print("choisissez une lettre : ")
        mot_résultat = transformation_mot(lettre_choisie, mot_a_trouvé)
        print(mot_résultat)
        nombre_de_chance -= 1
        if mot_a_trouvé == mot_résultat:
            résultat += nombre_de_chance
            print("Bravo !! Vous avez trouvé le mot.")
            print("Votre score est de {}".format(résultat))
            mot_trouvé = "true"
        elif nombre_de_chance == 0:
            print("Vous avez perdu !!")
            if nombre_de_chance != 0:
                 print("Votre score est de {}".format(résultat))
            mot_trouvé = "true"
    sauvegarder_score(résultat)
    réponse = print("Voulez-vous continuer la partie ? (o/n)")
    if réponse == "o" or "0":
        continue
    else:
        continuer_partie = "false"
print("Merci d'avoir jouer !!")
if résultat != 0:
    print("Votre score est de {}".format(résultat))


voilà mon module :

""" Module rassemblant les fonctions du pendu"""
from random import choice
from Pendu import nom

def mot():
    """fonction choisissant un mot random"""
    liste_mot = ["chien", "chat", "poubelle", "ours", "bureau", "chaise", "code"]
    mot_trouvé = choice(liste_mot)
    return mot_trouvé

def transformation_mot(lettre_choisie, mot_a_trouvé):
    """fonction transformant le mot en fonction de la lettre choisie"""
    resultat = ""
    for lettre in mot_a_trouvé:
        if lettre_choisie == lettre:
            resultat += lettre
        else:
                resultat += "*"
    return resultat

def sauvegarder_score(résultat):
    """fonction souvegardant le score de l'utilisateur"""
    with open("scores", "ab"):
        dict_score = {}
        dict_score[nom] = résultat


et voilà l'erreur que je trouve au moment où il faut importer la fonction mot :

NameError: name 'mot' is not defined

2 réponses

georges97 Messages postés 11815 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 16 avril 2024 2 240
25 févr. 2016 à 08:00
Bonjour,

A vérifier:

Dans def (mot): le nom de variable mot_trouvé comporte un caractère accentué, interdit dans la syntaxe python, doù sans doute le message NameError

Cordialement
1
Tatane600 Messages postés 7 Date d'inscription samedi 3 octobre 2015 Statut Membre Dernière intervention 19 mars 2016
25 févr. 2016 à 11:56
CA MARCHE !!

J'ai enlevé tous les accents et je n'est plus l'erreur.
Bon, j'ai encore plein de bugs mais c'est pas grave. :)

Merci pour ton aide !
0
dsy73 Messages postés 9252 Date d'inscription dimanche 22 août 2010 Statut Contributeur Dernière intervention 23 octobre 2020 2 476
Modifié par dsy73 le 25/02/2016 à 05:03
Salut
il te manque des directives d'importation dans ton premier code comme tu l'as fait pour le code du module.

D'ailleurs j'ai un doute sur ces directives dans le code de ton module : quels sont les noms de tes fichiers Python ?
0
Tatane600 Messages postés 7 Date d'inscription samedi 3 octobre 2015 Statut Membre Dernière intervention 19 mars 2016
25 févr. 2016 à 11:49
Mon module s'appelle "Module" et le fichier contenant le jeu s'appelle "Pendu". J'ai oublié de coller la ligne d'importation dans Pendu : "from Module import * ".

Tu peux supprimer la ligne d'importation dans Module : "from Pendu import nom" : j'ai rajouter "nom" en argument de la fonction.
0