Une liste de clients aléatoires

Fermé
jipi10 Messages postés 35 Date d'inscription samedi 15 août 2020 Statut Membre Dernière intervention 5 février 2024 - Modifié le 6 janv. 2021 à 18:47
jipi10 Messages postés 35 Date d'inscription samedi 15 août 2020 Statut Membre Dernière intervention 5 février 2024 - 7 janv. 2021 à 14:37
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

M3NSONG3 Messages postés 615 Date d'inscription mardi 16 avril 2013 Statut Membre Dernière intervention 4 novembre 2021 162
Modifié le 6 janv. 2021 à 18:54
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
jipi10 Messages postés 35 Date d'inscription samedi 15 août 2020 Statut Membre Dernière intervention 5 février 2024 2
6 janv. 2021 à 19:12
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
M3NSONG3 Messages postés 615 Date d'inscription mardi 16 avril 2013 Statut Membre Dernière intervention 4 novembre 2021 162
6 janv. 2021 à 19:27
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
jipi10 Messages postés 35 Date d'inscription samedi 15 août 2020 Statut Membre Dernière intervention 5 février 2024 2
7 janv. 2021 à 09:41
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
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
7 janv. 2021 à 10:56
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/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipi10 Messages postés 35 Date d'inscription samedi 15 août 2020 Statut Membre Dernière intervention 5 février 2024 2
7 janv. 2021 à 11:18
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
M3NSONG3 Messages postés 615 Date d'inscription mardi 16 avril 2013 Statut Membre Dernière intervention 4 novembre 2021 162
Modifié le 7 janv. 2021 à 14:33
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
jipi10 Messages postés 35 Date d'inscription samedi 15 août 2020 Statut Membre Dernière intervention 5 février 2024 2
7 janv. 2021 à 14:37
Encore merci à toi !
0