SOS pour un programme

Fermé
barou_sanogo Messages postés 26 Date d'inscription mercredi 10 mars 2004 Statut Membre Dernière intervention 16 décembre 2023 - Modifié le 8 oct. 2021 à 13:46
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 - 11 oct. 2021 à 15:41
Bonjour,

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

mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
Modifié le 11 oct. 2021 à 15:46
Bonjour,

Comme le dit fort justement python, la variable
clients
n'est pas déclarée.

De plus le programme semble incomplet, car il manque aussi certaines fonctions comme
affichage
,
achat
,
approvisionnement
, et
quitter
.

Bref, sans avoir tout le code, difficile d'être catégorique, mais j'imagine que
  • tu devrais renommer
    client
    et
    client1
    (ligne 19) et
    client2
    (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ées
    medicament1
    et
    medicament2
    . 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
    et
    approvisionnement
    , mais lignes 32 et 34 tu les utilises comme des fonctions, ce qui est incohérent.


Exemple :

def approvisionnement(medicaments):
  print(medicaments)



Bonne chance
0