Name is not defined

larbes -  
 Utilisateur anonyme -

Bonjour,

J'ai un exercice de python, je dois faire le jeu de Molkky, j'ai fait une fonction mais quand je l'execute ça me met name is not defined, pouvez vous me dire pourquoi et qu'est-ce que je dois changer

def jouer():
    n=input("Quel est ton nom")
    l=0
    h=0
    while l!=51:
        h=h+1
        if l<51:
            import random
            m=[0,1,2,3,4,5,6,7,8,9,10,11,12]
            return random.choice(m)
            l=l+m
        else:
            l=25
            import random
            m=[0,1,2,3,4,5,6,7,8,9,10,11,12]
            return random.choice(m)
            l=l+m    
jouer()
print(l,h)


Windows / Chrome 106.0.0.0

4 réponses

  1. Utilisateur anonyme
     

    Salut Phil,

    je n'avais même pas fait attention à l'import.

    Larbes, ton message d'erreur n'a rien à voir avec l'import.

    Mais l'import en boucle risque de te poser un problème à un autre moment, donc maintenant que c'est identifié, autant le corriger.

    Tu as dit que tu as un exercice.

    Un exercice, ça ne tombe pas du ciel, ça vient d'un cours. En principe, l'exercice fait appliquer des notions qui ont été vues.

    Donc, tu devrais avoir vu ce qu'est la portée d'une variable ou à défaut, comment obtenir un résultat d'une fonction.

    Et par conséquent, relis ton cours.


    1
  2. Utilisateur anonyme
     

    Bonjour 

    tout d'abord, merci à Baladur d'avoir rendu ton code lisible.

    Pour tes prochains post, merci d'utiliser la coloration syntaxique, comme décrit ici https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code


    Pour ton problème, ça nous aiderait de savoir à quelle ligne apparaît ce message d'erreur.

    Peut-être d'ailleurs que le message d'erreur original est plus complet que ça, en te mettant par exemple

    'l' name is not defined

    Et dans ce cas, une petite recherche sur la portée des variables dans ton cours te sera profitable.


    0
    1. Larbes
       

      C’est à la ligne 19 que ça affiche et c’est comme vous l’avez écrit. Ça m’affiche ça 

      0
  3. Utilisateur anonyme
     

    Et bien donc, je t'invite à relire le paragraphe sur la portée des variables 


    0
    1. Larbes
       

      Je ne comprends pas la variable l je l’ai défini 

      0
  4. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     

    Tu l'as définie dans la fonction

    Mais est-elle visible à l'extérieur ?

    (c'est ça la portée des variables)

    Et de plus, on met les import une seule fois en tout début de code

    import random

    suite du code

    Tel que tu le fais, ça l'importe 50 fois, ce qui est inutile 

    0
    1. Larbes
       

      D’accord, si je le retire le message d’erreur va rester non ?

      0