Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
index error in text script
#1
Hi,
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")
Reply
#2
Please post the full text of the error message, and any inputs your are giving to get that error.
Craig "Ichabod" O'Brien - xenomind.com
I wish you happiness.
Recommended Tutorials: BBCode, functions, classes, text adventures
Reply
#3
Please post the exact error
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Script that alternates between 2 text messages DiscoMatic 1 493 Dec-12-2023, 03:02 PM
Last Post: buran
  Python script that deletes symbols in plain text nzcan 3 641 Sep-05-2023, 04:03 PM
Last Post: deanhystad
  pyscript index error while calling input from html form pyscript_dude 2 938 May-21-2023, 08:17 AM
Last Post: snippsat
  Index error help MRsquared 1 739 May-15-2023, 03:28 PM
Last Post: buran
  I'm getting a String index out of range error debian77 7 2,280 Jun-26-2022, 09:50 AM
Last Post: deanhystad
  labels.append(self.classes.index(member.find('name').text)) hobbyist 1 1,873 Dec-15-2021, 01:53 PM
Last Post: deanhystad
  Python Error List Index Out of Range abhi1vaishnav 3 2,239 Sep-03-2021, 08:40 PM
Last Post: abhi1vaishnav
  Index error - columns vs non-column Vinny 3 4,848 Aug-09-2021, 04:46 PM
Last Post: snippsat
  How to resolve Index Error in my code? codify110 6 2,957 May-22-2021, 11:04 AM
Last Post: supuflounder
  index error surim 4 2,457 Dec-05-2020, 02:34 PM
Last Post: deanhystad

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020