@StrangeDylan
Мне нужно, что бы человеку давалось 5 секунд на то, что бы ввести какой либо текст. Если за 5 секунд он этого не сделает, то выполнение программы должно остановится. Но, программа останавливается только если успеть что либо ввести, при истечении 5 секунд программа продолжает работу.
import asyncio
from aioconsole import ainput
async def main():
async def input():
x = await ainput()
try:
await asyncio.wait_for(input(), timeout=5)
except asyncio.TimeoutError:
print('timeout')
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
Решения вопроса 0
Ответы на вопрос 1
@Jourloy
Нашел вот здесь
from threading import Thread
import time
import os
answer = None
def ask():
global start_time, answer
start_time = time.time()
answer = input("Enter a number:n")
time.sleep(0.001)
def timing():
time_limit = 5
while True:
time_taken = time.time() - start_time
if answer is not None:
print(f"You took {time_taken} seconds to enter a number.")
os._exit(1)
if time_taken > time_limit:
print("Time's up !!! n"
f"You took {time_taken} seconds.")
os._exit(1)
time.sleep(0.001)
t1 = Thread(target=ask)
t2 = Thread(target=timing)
t1.start()
t2.start()