Amigun
@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 секунд?
  • Вопрос задан
  • 862 просмотра
Решения вопроса 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
NeiroNx
@NeiroNx
Программист
Ну как - написал вопрос, сохранил время в переменную, ждешь ответа, пользователь ответил - сравнивашь время с сохраненным, если больше 10 сек прошло то пишешь что время вышло.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
FunBox Ульяновск
от 100 000 ₽
FunBox Новосибирск
от 100 000 ₽
FunBox Санкт-Петербург
от 100 000 ₽
01 июн. 2020, в 23:32
3000 руб./за проект
01 июн. 2020, в 23:08
3000 руб./за проект
01 июн. 2020, в 20:19
12000 руб./за проект