Сообщение об ошибке Python: встроенные.Ошибка IndexError: строковый индекс вне диапазона

#python

#python

Вопрос:

Я создаю игру, в которой программа будет считывать из файла, содержащего 5 вопросов с множественным выбором, и пользователь может ответить на эти вопросы и получить оценку. Однако я застреваю, поскольку получаю то же сообщение об ошибке:

 builtins.IndexError: string index out of range
  

вот мой код на данный момент:

 def main():
    playagain = True
    while playagain:
        inFile = open('Questions.txt', 'r')
        condition = True
        while condition:
            for line in range(5):
                line = inFile.readline()
                print(line)

            anskey = inFile.readline()
            anskey = anskey[4]

            status = True
            while status:
                useranswer = str(input('Enter your answer?  '))
                useranswer = useranswer.upper()

                if useranswer == 'A' or useranswer == 'B' or useranswer 
                    == 'C' or useranswer == 'D':
                    status = False
                    if useranswer == anskey:
                        correct = correct   1
                        print('Correct Answer!')
                    else:
                        print('Wrong Answer!')
                        correct = correct
                else:
                    print('Answer not valid!')


main()
  

Комментарии:

1. Опубликуйте полный ответ на трассировку в качестве правки к вашему вопросу (не в качестве комментария!).

2. На какой линии это происходит? Подробности!

3. @eryksun — моя ошибка — я использовал PythonTidy для очистки форматирования кода, и, должно быть, из него были удалены круглые скобки.

Ответ №1:

Поскольку в вашем коде есть только одна операция индексирования, anskey[4] я предполагаю, что в вашем inFile есть строка, в которой меньше 5 символов.