Dec-08-2019, 11:50 PM
Hi,
I'm getting an error in the script.
IndexError: list index out of range
Can anyone help?
I'm getting an error in the script.
IndexError: list index out of range
Can anyone help?
class SMSMessage(object): """ This is the SMS Object """ def __init__(self, messageText, fromNumber): """ This is a constructor for SMSMessage class """ self.fromNumber = fromNumber self.hasBeenRead = False self.messageText = messageText self.SMSStore = [] def markAsRead(self): """ mark message as read """ self.hasBeenRead = True def add_sms(self, text, number): """ create a new sms msg and add to sms store """ newSms = SMSMessage(text, number) self.SMSStore.append(newSms) def get_count(self): """ get the total number of SMS """ print(len(self.SMSStore)) def get_message(self, index): """ get stored SMS message from a specific index """ msg = self.SMSStore[index] print(msg.messageText) msg.hasBeenRead = True def get_unread_messages(self): """ show all unread messages """ print([each_sms.messageText for each_sms in self.SMSStore if each_sms.hasBeenRead == False]) def remove(self, msg): """ remove msg """ print(msg) print(self.SMSStore[0].messageText) for sms in self.SMSStore: if sms.messageText == msg: self.SMSStore.remove(sms) print("msg removed!") # sms = SMSMessage("hello there", 1231231) # sms.add_sms("hello there", 1231231) # sms.add_sms("hello there again", 1231231) # sms.get_message(0) # print(sms.get_unread_messages()) while True: menu = """ 1. Send SMS 2. Read SMS 3. Delete SMS 4. Quit """ print(menu) userChoice = int(input("Choice: ")) if userChoice == 1: sender_number = input("Sender Number: ") message_text = input("Message body: ") sms = SMSMessage(sender_number, message_text) sms.add_sms(message_text, sender_number) print("sms sent to", sender_number ) elif userChoice == 2: index = int(input("Enter the message index: ")) # print(sms.SMSStore) print(sms.get_message(index)) elif userChoice == 3: msg = input("Enter the message text you want to delete: ") sms.remove(msg) elif userChoice == 4: break else:print("Oops - incorrect input")