#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 символов.