Python : NameError
Résolu/Fermé
BernardGamer123
-
10 févr. 2022 à 23:30
georges97 Messages postés 12863 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 8 janvier 2025 - 11 févr. 2022 à 10:50
georges97 Messages postés 12863 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 8 janvier 2025 - 11 févr. 2022 à 10:50
A voir également:
- Python : NameError
- Citizen code python avis - Accueil - Outils
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
- Trouver la position d'un élément dans une liste python ✓ - Forum Python
- Python pix ✓ - Forum Python
2 réponses
jordane45
Messages postés
38371
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 janvier 2025
4 722
10 févr. 2022 à 23:31
10 févr. 2022 à 23:31
Bonjour,
Tu testes une variable ... qui n'existe pas encore ...
Tu testes une variable ... qui n'existe pas encore ...
georges97
Messages postés
12863
Date d'inscription
lundi 31 janvier 2011
Statut
Contributeur
Dernière intervention
8 janvier 2025
2 452
Modifié le 11 févr. 2022 à 08:47
Modifié le 11 févr. 2022 à 08:47
Bonjour,
Il y a, de mon point de vue, plusieurs autres erreurs dans le code transmis:
1) la variable numbers_choice devrait être initialisée comme un entier et non comme une chaîne de caractères puisque le test détermine si le nombre entré est supérieur ou inférieur.
Donc:
numbers_choice = 0
2) l'ensemble des "if" devrait être indenté, sinon, on reste sur l'entrée "ici:" mais on n'a jamais les affichages "c'est plus", "c'"est moins". On a juste "c'est gagné" quand on entre la bonne réponse.
3) l'input doit être précédé de la fonction int sinon l'entrée est par défaut une chaîne de caractères et on a un message d'erreur concernant la comparaison entre les types de l'entée et de la variable initiale.
soit:
numbers_choice = int(input("ici :"))
4) j'oubliais, il y a deux fois les mêmes lignes, d'où un double affichage en retour.
Edit: et aussi, toutes les lignes if numbers_choice == "1900":
doivent s'écrire sous la forme: if numbers_choice == 1900:
pour permettre le traitement d'une variable numérique.
Je pense que Jordan, que je salue, n'a pas relevé ces erreurs en s'étant arrêté à l'erreur initiale, ce qui était le sujet du post.
Il y a, de mon point de vue, plusieurs autres erreurs dans le code transmis:
1) la variable numbers_choice devrait être initialisée comme un entier et non comme une chaîne de caractères puisque le test détermine si le nombre entré est supérieur ou inférieur.
Donc:
numbers_choice = 0
2) l'ensemble des "if" devrait être indenté, sinon, on reste sur l'entrée "ici:" mais on n'a jamais les affichages "c'est plus", "c'"est moins". On a juste "c'est gagné" quand on entre la bonne réponse.
3) l'input doit être précédé de la fonction int sinon l'entrée est par défaut une chaîne de caractères et on a un message d'erreur concernant la comparaison entre les types de l'entée et de la variable initiale.
soit:
numbers_choice = int(input("ici :"))
4) j'oubliais, il y a deux fois les mêmes lignes, d'où un double affichage en retour.
Edit: et aussi, toutes les lignes if numbers_choice == "1900":
doivent s'écrire sous la forme: if numbers_choice == 1900:
pour permettre le traitement d'une variable numérique.
Je pense que Jordan, que je salue, n'a pas relevé ces erreurs en s'étant arrêté à l'erreur initiale, ce qui était le sujet du post.
georges97
Messages postés
12863
Date d'inscription
lundi 31 janvier 2011
Statut
Contributeur
Dernière intervention
8 janvier 2025
2 452
>
BernardGamer123
11 févr. 2022 à 10:50
11 févr. 2022 à 10:50
Ca tombe bien, je ne suis pas pro non plus. Nous pratiquons l'entraide et non pas le tutorat, Même s'il y a des codeurs avertis, comme Jordane45.
Si une réponse comporte des points d'ombre, vous pouvez le signaler. Mais je pense avoir détaillé, y compris en rédigeant les lignes en cause (ce qui n'est pas systématique) en tenant justement compte du fait que des débutants s'initient à python, pour lequel je suis également en apprentissage.
Par ailleurs, votre réponse ne permet en aucun cas de continuer à vous aider, d'une part parce que vous ne dîtes pas ce que vous n'avez pas compris, d'autre part parce que nous ne pouvons même pas savoirs si vous avez appliqué une des corrections proposées par Jordane ou par moi.
A quoi sert de ce fait de vous adresser à des intervenants, qui ne peuvent apporter de précisions que s'il y a un minimum d'interactivité.
En attendant de lire donc, votre code corrigé..
Si une réponse comporte des points d'ombre, vous pouvez le signaler. Mais je pense avoir détaillé, y compris en rédigeant les lignes en cause (ce qui n'est pas systématique) en tenant justement compte du fait que des débutants s'initient à python, pour lequel je suis également en apprentissage.
Par ailleurs, votre réponse ne permet en aucun cas de continuer à vous aider, d'une part parce que vous ne dîtes pas ce que vous n'avez pas compris, d'autre part parce que nous ne pouvons même pas savoirs si vous avez appliqué une des corrections proposées par Jordane ou par moi.
A quoi sert de ce fait de vous adresser à des intervenants, qui ne peuvent apporter de précisions que s'il y a un minimum d'interactivité.
En attendant de lire donc, votre code corrigé..
10 févr. 2022 à 23:32
10 févr. 2022 à 23:35
Sauf que la variable numbers_choice ... tu l'initialise DANS ton while ...
Initialise la variable AVANT ton while ..