Bonjour à tous,
Voici les consignes de l'exercice où je suis bloqué: "Créez une nouvelle classe, SMSStore. Avec cette classe vous pourrez instancier des objets SMSStore, qui peuvent stocker des messages SMS, similaire à une boîte de réception sur un téléphone:
Ce store ou stockage peut contenir plusieurs messages SMS (son état interne sera juste une liste de messages). Chaque message sera représenté comme un tuple: (has_been_viewed, from_number, time_arrived, text_of_SMS). Une instance my_inbox de la classe SMSStore représentant une boîte de réception doit pouvoir comprendre les messages suivants:
Code : Sélectionner tout - Visualiser dans une fenêtre à part my_inbox = SMSStore()
Voici mon code :
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 my_inbox.add_new_arrival(from_number, time_arrived, text_of_SMS) # Crée un nouveau tuple SMS, ajouté après les autres # dans le stockage. Une fois créé, son attribut # has_been_viewed est mis à False. my_inbox.message_count() # Retourne le nombre de messages SMS dans my_inbox my_inbox.get_unread_indexes() # Retourne une list des indexes de tous les messages SMS encore non lus (not-yet-viewed) my_inbox.get_message(i) # Retourne (from_number, time_arrived, text_of_sms) pour le message[i] # Change aussi son état à "has been viewed". # S'il n'y a pas de message à la position i, retorune None my_inbox.delete(i) # Supprime le message SMS se trouvant à l'index i my_inbox.clear() # Supprime tous les messages SMS de cette boîte de réception
Soyez indulgent, c'est mon premier exercice sur les classes en Python ! Cela fait depuis 4H que je bloques dessus en le modifiant plusieurs fois et finalement il m'a l'air parfait actuellement mais ne compile toujours pas correctement. Pouvez-vous m'aider à réparer les erreurs code ? Dernière question, comment faites-vous quand vous êtes bloqués comme cela pour vous en sortir ? Je veux dire par là, à mes premières relectures j'ai pu identifié quelques erreurs, maintenant j'ai beau relire mon code il me parait fonctionnel...
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 class SMSStore(): def __init__(self): self.box=[] def get_unread_indexes(self): self.index=[] for k in self.box: if k[0] == False: self.index.append(self.box.index(k)) return(self.index) def clear(self): self.box[:]=[] def add_new_arrival(self,from_number,time_arrived,text_of_SMS): self.text_of_SMS=text_of_SMS self.time_arrived=time_arrived self.from_number=from_number self.has_been_viewed=False self.box.append((self.has_been_viewed,self.from_number,self.time_arrived,self.text_of_SMS)) def message_count(self): return(len(self.box)) def get_message(self,i): if i <= (len(self.box) - 1): self.box[i][0] = True return(self.box[i][1:]) return(None)
Merci infiniment,
Partager