Просмотр содержимого документа
«Уроки Python 10 - Программа - экзаменатор»
Уроки Python 10 - Программа - экзаменатор
В этом уроке мы применим полученные ранее знания, и напишем игру-тестирование, которая будет задавать нам вопросы, и давать варианты ответов, а в конце покажет, на сколько вопросов мы ответили верно.
Для начала давайте создадим на диске D: файл q.txt в который запишем вопросы, ответы и код правильного ответа в следующем формате
Вопрос
Ответ 1
Ответ 2
Ответ 3
Код правильного ответа одной цифрой
Для примера, я с помощью стандартного блокнота Windows создам вот такой файл с тремя вопросами
Как звали няню Пушкина?
Алина
Арина
Алла
2
Наполеон - это:
Торт
Коньяк
Полководец
3
За что мы любим программирование?
Позволяет решать задачи
Позволяет зарабатывать деньги
Позволяет сидеть за компом
1
Итак, файл готов, теперь нужно написать программу:
ball=0
kol=0
f=open(u'D:/q.txt', 'r')
while True:
vopros=f.readline().strip()
if (not vopros):
break
otvet1=f.readline().strip()
otvet2=f.readline().strip()
otvet3=f.readline().strip()
kod=f.readline().strip()
print(vopros)
print('1. '+otvet1)
print('2. '+otvet2)
print('3. '+otvet3)
k=str(input('Введите номер правильного ответа и нажмите Enter\n'))
kol=kol+1
if(k==kod):
ball=ball+1
print('Вы ответили правильно на ' + str(ball) +' из '+ str(kol) + ' вопросов')
В переменной kol у нас будет копиться количество заданных вопросов, а в переменной ball будет накапливаться количество правильных ответов.
Теперь нам нужно по очереди читать из файла строки, и записывать их в переменные vopros, otvet1, otvet2, otvet3, и kod. Далее печатать очередной вопрос и его ответы, и ожидать от пользователя ввода цифры с вариантом. Если введенная цифру равна переменной kod где у нас храниться код правильного ответа, то добавим к переменной ball единичку.
Мы изначально не знаем сколько в файле q.txt записано вопросов, поэтому будем читать строку с вопросом, а потом проверять прочиталась ли она (не кончился ли файл). Если не прочиталась, значит файл закончился и нужно выйти из цикла с помощью break, а если прочиталась, то можно читать дальше - ответы и код правильного ответа.
Чтение строк из файла производим с помощью f.readline().strip() - эта команда чтения очередной строки, с приклеенной позади неё командой .strip() которая очищает строку от лишних пробелов.
В конце программа выводит ваш результат - количество вопросов на которые вы ответили правильно.
Используя обычный блокнот вы можете поместить в файл с тестом сколько угодно вопросов и ответов, главное соблюдайте заданный нами формат - в один вопрос, три ответа и код верного ответа.
Мы написали несложную программу, которая позволяет проводить тестирование, или создать тест-игру. В следующих уроках мы разберём что такое функции.