SOS pour un programme
Bonjour,
Je suis nouveau sur Python, version 3.8.11
Je ne parviens pas à exécuter convenablement le programme ci-dessous:
Voici le résultat:
Le problème:
Je suis nouveau sur Python, version 3.8.11
Je ne parviens pas à exécuter convenablement le programme ci-dessous:
#coding: Utf8
def menu():
print("""1 : Achat de medicament
2 : Approvisionnement en medicaments
3 : Etats des stocks et des credits
4 : Quitter""")
while True:
try:
choix = int(input("Entrez votre choix: "))
if choix in range(1, 5):
break
except ValueError:
continue
return choix
client = ("Oumar",0.0)
client = ("Kadiatou",0.0)
Medicament = ("Aspirine", 20.40, 5)
Medicament = ("Aspegic", 19.15, 5)
achat = ("clients", "medicaments")
approvisionnement = ("medicaments")
while True:
choix = menu()
if choix == 1:
achat(clients, medicaments)
elif choix == 2:
approvisionnement(medicaments)
elif choix == 3:
affichage(clients, medicaments)
else:
break
quitter()
Voici le résultat:
1 : Achat de medicament 2 : Approvisionnement en medicaments 3 : Etats des stocks et des credits 4 : Quitter Entrez votre choix: 1
Le problème:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-9-b6180252b82a> in <module>
30
31 if choix == 1:
---> 32 achat(clients, medicaments)
33 elif choix == 2:
34 approvisionnement(medicaments)
NameError: name 'clients' is not defined
1 réponse
-
Bonjour,
Comme le dit fort justement python, la variableclients
n'est pas déclarée.
De plus le programme semble incomplet, car il manque aussi certaines fonctions commeaffichage
,achat
,approvisionnement
, etquitter
.
Bref, sans avoir tout le code, difficile d'être catégorique, mais j'imagine que- tu devrais renommer
client
etclient1
(ligne 19) etclient2
(ligne 20) ; - tu as oublié (ligne 21) une instruction du genre
clients = [client1, client2]
(pour construire une liste qui contient ces deux clients).
À noter ensuite que ce ne sera pas le seul problème :- sur le même principe, tes variables
Medicament
devraient sans doute être renomméesmedicament1
etmedicament2
. Note au passage qu'en python, les noms de variables sont écrits en minuscules (les noms qui commencent pas une majuscules sont normalement réservés aux classes). - ligne 24 et 25, tu déclares deux tuples
achat
etapprovisionnement
, mais lignes 32 et 34 tu les utilises comme des fonctions, ce qui est incohérent.
Exemple :
def approvisionnement(medicaments): print(medicaments)
Bonne chance - tu devrais renommer