Une liste de clients aléatoires

Signaler
Messages postés
6
Date d'inscription
samedi 15 août 2020
Statut
Membre
Dernière intervention
7 janvier 2021
-
Messages postés
6
Date d'inscription
samedi 15 août 2020
Statut
Membre
Dernière intervention
7 janvier 2021
-
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

Messages postés
578
Date d'inscription
mardi 16 avril 2013
Statut
Membre
Dernière intervention
9 janvier 2021
119
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)



Messages postés
6
Date d'inscription
samedi 15 août 2020
Statut
Membre
Dernière intervention
7 janvier 2021

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 !
Messages postés
578
Date d'inscription
mardi 16 avril 2013
Statut
Membre
Dernière intervention
9 janvier 2021
119
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 !
Messages postés
6
Date d'inscription
samedi 15 août 2020
Statut
Membre
Dernière intervention
7 janvier 2021

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 !
Messages postés
849
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
15 janvier 2021
96
Bonjour,

Et sinon, pour chercher par toi-même la prochaine fois, un excellent tuto en ligne:

https://allen-downey.developpez.com/livres/python/pensez-python/
Messages postés
6
Date d'inscription
samedi 15 août 2020
Statut
Membre
Dernière intervention
7 janvier 2021

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.
Messages postés
578
Date d'inscription
mardi 16 avril 2013
Statut
Membre
Dernière intervention
9 janvier 2021
119
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 !
Messages postés
6
Date d'inscription
samedi 15 août 2020
Statut
Membre
Dernière intervention
7 janvier 2021

Encore merci à toi !