@Amigun
Учусь программированию. Новичок

Как сделать определенное время на ответ в Python?

Мой код задет вопрос:
print ('Газон зеленый')

Пользователь должен ответить 1-да, 2-нет
print ('1 - Правда')
print ('2 - Ложь')


Но время на ответ должно быть ограниченно, например 10 секунд. Использую модуль time

Мой код:
print ('Газон зеленый')
print ('1 - Правда')
print ('2 - Ложь')
ans = int(input('Ваш вариант ответа:'))
time.sleep (10)
print ('Время вышло!')
if ans == 1:
	print ('Вы ответили правильно!')
elif ans == 2:
	print ('Вы ответили не правильно!')
else:
	print ('Вы не ответили')


Но дело в том, что время (time.sleep (10)) не будет отсчитывать время, пока кто-то не введет ответ. Как исправить?
Чтобы время для ответа на вопрос, было 10 секунд?
  • Вопрос задан
  • 442 просмотра
Решения вопроса 1
@BJlaDuMup
Работает, но нужно доделать
import time
from threading import Thread

an = 1
ans = 0

def countdown():
	time.sleep (10)
	if not ans:
		print ('\nВремя вышло!')
		global an
		an = 0
def answer():
	global ans
	ans = int(input('Ваш вариант ответа:'))
	if ans == 1 and an:
	  print ('Вы ответили правильно!')
	elif ans == 2 and an:
	  print ('Вы ответили не правильно!')
	else:
		ans = 3
	  print ('Вы не ответили')


print ('Газон зеленый')
print ('1 - Правда')
print ('2 - Ложь')
task1 = Thread(target=countdown)
task2 = Thread(target=answer)
task1.start()
task2.start()
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Ну как - написал вопрос, сохранил время в переменную, ждешь ответа, пользователь ответил - сравнивашь время с сохраненным, если больше 10 сек прошло то пишешь что время вышло.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы