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

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
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
Larbes
 

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

0
Utilisateur anonyme
 

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


0
Larbes
 

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

0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 

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
Larbes
 

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

0