Name is not defined

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. 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
    1. 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. C’est à la ligne 19 que ça affiche et c’est comme vous l’avez écrit. Ça m’affiche ça 

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


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

        0
    3. 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. D’accord, si je le retire le message d’erreur va rester non ?

        0