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:

#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

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    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