Une liste de clients aléatoires

jipi10 Messages postés 37 Statut Membre -  
jipi10 Messages postés 37 Statut Membre -
Bonjour à tous.

Je chercher à rédiger un programme tout simple:

Il va demander le nombre de clients, puis pour chacun d'eux, le nom, le sexe, date de naissance etc.

J'ai essayé de passer par une boucle for, en indexant les variables comme il est possible de le faire en C, du genre

-client (1)=Dupont.
-client(2)=Martin.

J'ai essayé ces quelques lignes:

nombre_clients = int(input("Combien y-a-t-il de clients ?"))
boucle = nombre_clients + 1

for i in range (1, boucle):
    nom_client[i] = string(input("Quel est le nom du client" + string(i))
    sexe_client[i] = string(input("quel est le sexe du client" + string(i))


Mais visiblement ça ne fonctionne pas.

J'ai déjà tué l'un de mes chats à force de m'énerver, aussi vous comprendrez ma reconnaissance à l'égard de l'intervenant qui me résoudra mon problème.

6 réponses

  1. M3NSONG3 Messages postés 670 Statut Membre 162
     
    Salut !
    Ce que tu peux faire, outre utiliser une classe (qui s'apparenterait un peu comme une structure en C)
    Tu as plusieurs autres moyens, un dictionnaire... Les DataClasses etc...
    Par exemple si tu utilises un dictionnaire tu peux faire :

    # coding: utf-8
    
    nombre_clients = int(input("Combien y-a-til de clients ?"))
    
    clients = [] # liste dans laquelle on va mettre les clients
    
    for i in range(1, nombre_clients + 1):
     client_actuel = {
      "nom": input("Quel est le nom du client " + str(i)),
      "sexe": input("Quel est le sexe du client " + str(i))
     }  # On crée un dictionnaire pour modéliser le client
     clients.append(client_actuel) # On l'ajoute à la liste
    
    print(clients)
    


    Et tu pourras pour chaque client récupérer les données par exemple avec un affichage de ce type :
    for client in clients:
     print("Un client s'appelle {} est de sexe {}".format(
      client["nom"],
      client["sexe"]
     ))


    Je peux te donner d'autre exemple si nécessaire...

    En python, comme la taille des tableaux est dynamique, tu ne peux pas y accéder à l'élément n comme ceci tab[n] s'il n'a pas été crée.
    (Python adapte la taille de la liste au fur à mesure)

    0
  2. jipi10 Messages postés 37 Statut Membre 5
     
    Enorme !

    Je vais de ce pas tailler ton visage à même la roche de la grotte de Lourdes et faire bâtir une basilique en ton nom !
    0
    1. M3NSONG3 Messages postés 670 Statut Membre 162
       
      Ca fait un peu beaucoup, mais j'avoue que l'idée de la basilique... Hum hum !
      Sinon tu peux utiliser une classe au lieu d'un dictionnaire par exemple :
      class Client:
      	def __init__(self, name="", sexe=""):
      		self.name = name
      		self.sexe = sexe
      
      	def set_name(self, name):
      		self.name = name
      
      	def set_sexe(self, sexe):
      		self.sexe = sexe
      
      	def get_name(self):
      		return self.name
      
      	def get_sexe(self):
      		return self.sexe


      par exemple :
      # coding: utf-8
      
      class Client:
      	def __init__(self, name="", sexe=""):
      		self.name = name
      		self.sexe = sexe
      
      	def set_name(self, name):
      		self.name = name
      
      	def set_sexe(self, sexe):
      		self.sexe = sexe
      
      	def get_name(self):
      		return self.name
      
      	def get_sexe(self):
      		return self.sexe
      
      	def __str__(self):
      		return "Le client s'appelle {} et est de sexe {}".format(
      			self.name,
      			self.sexe
      		)
      
      
      nombre_clients = int(input("Combien y-a-til de clients ?"))
      
      clients = []  # liste dans laquelle on va mettre les clients
      
      for i in range(1, nombre_clients + 1):
      	client_courant = Client()
      	client_courant.set_name(input("Nom du client " + str(i)))
      	client_courant.set_sexe(input("Sexe du client " + str(i)))
      	clients.append(client_courant)
      
      for client in clients:
      	print(client)
      

      Et j'arrête de te bombarder d'exemple ahah, bon courage !
      0
  3. jipi10 Messages postés 37 Statut Membre 5
     
    C'est malin ! Le temps que j'aurais perdu pour trouver la solution par moi-même, je vais le passer à choisir la meilleure de tes propositions...

    Merci encore M3NSONG3 !
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. jipi10 Messages postés 37 Statut Membre 5
     
    Tiens, comme je suis un boulet, j'aurais une autre question:

    J'aurais également besoin de différencier les clients en fonction de leur sexe:

    A savoir, si le client(x) est une femme, on lui demandera si elle a un nom de jeune fille et quel est ce nom de jeune fille.

    Avec une possibilité de personnaliser la restitution du genre:

    Monsieur Durand né le 07/01/1990 à Paris
    Madame Dupont née Martin le 08/02/1972 à Marseille

    Est-ce que ça rentre dans le dictionnaire ?

    Merci par avance.
    0
    1. M3NSONG3 Messages postés 670 Statut Membre 162
       
      Tu peux tout faire. Bon après ça peut vite alourdir le code sur certains point, mais voilà de quoi le faire :
      - Tu peux récupérer la valeur d'une clef dans le fictionnaire avec mon_dictionnaire[clef]...
      - Tu peux aussi vérifier si une clef existe avec if clef in mon_dictionnaire

      Bon courage !
      0
  6. jipi10 Messages postés 37 Statut Membre 5
     
    Encore merci à toi !
    0