Bonjour à tout le monde !
Je cherchais jusque-là vainement une occasion d'essayer Python et je viens d'en trouver une : j'aimerais réaliser un petit script de tour de parole (en gros que le script m'indique quelle personne a le moins parlé pour la faire passer en premier lors d'un tour de parole).
J'ai donc créé une classe "Presents" destinée à répertorier les pseudos des personnes ainsi que leur temps de parole (je voudrais me laisser la possibilité de rajouter d'autres critères plus tard). Et j'ai mis dans une liste chaque Présent créé (donc avec son attribut de pseudo et son attribut de temps de parole).
Mais je rencontre le problème suivant : dans ma liste, j'ai l'adresse de l'objet. Donc quand je veux comparer ou chercher des choses dans cette liste (par exemple vérifier que tel pseudo existe dans la liste), je dois rajouter à chaque item l'attribut dont j'ai besoin (soit le pseudo, soit le temps de parole) pour pouvoir faire cela. Et je ne sais pas si c'est possible, et, si c'est possible, comment m'y prendre.
Est-ce que j'utilise une mauvaise manière de faire ? Pourriez-vous m'aider ?
Voici mon code :
Tour_de_parole.py
Donc quand je compare les inscrits_tour_parole à liste_de_presents, je compare par exemple le pseudo "Pierre" à "[<__main__.Presents object at 0x7f0213717fd0>" alors que je devrais le comparer aux items de la liste de la façon suivante : item.pseudo. Et je n'arrive pas à faire ce que je voudrais.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 # Programme de tour de parole liste_de_presents = [] tour_de_parole_ouvert = [] # On définit une classe pour chaque individu class Presents: total = 0 # compte le nombre de présents def __init__(self, pseudo, tps_parole=0): Presents.total += 1 # on incrémente à chaque instance de classe créée self.pseudo = pseudo self.tps_parole = tps_parole def gerer_liste_de_presents(): nombre_de_presents = input("Combien de personnes à ajouter aux présent.es ? : ") for i in range(int(nombre_de_presents)): pseudo_individu = input("Quel pseudo ? : ") pseudo_individu = Presents(pseudo_individu) liste_de_presents.append(pseudo_individu) def tour_de_parole(): tour_de_parole_ouvert.clear() fermer_le_tour = "n" while fermer_le_tour != "o": nombre_inscrits = input("Combien de personnes veulent s'inscrire ? : ") for _ in range(int(nombre_inscrits)): inscrits_tour_parole = input("Qui veut parler ? : ") while inscrits_tour_parole not in liste_de_presents: inscrits_tour_parole = input("Cette personne n'est pas inscrite. Qui veut parler ? : ") tour_de_parole_ouvert.append(inscrits_tour_parole) fermer_le_tour = input("Fermer le tour de parole ? (o/n) : ") gerer_liste_de_presents() tour_de_parole()
Partager