Python에서 시간 제한이 있는 사용자 입력
입력 함수로 사용자 입력을 요청할 때 사용자가 입력할 수 있는 시간을 제한할 수 있습니다. 응답하기 위해. 이를 통해 시간 초과를 적절하게 처리하고 적절한 피드백을 제공할 수 있습니다.
시간 제한 입력 사용
시간 제한 입력을 구현하려면 다음 접근 방식을 고려하세요.
스레드 접근 차단(Python 2/3)
import threading timeout = 10 # In seconds t = threading.Timer(timeout, lambda: print('Sorry, times up.')) t.start() prompt = "You have {} seconds to choose the correct answer...\n".format(timeout) answer = input(prompt) t.cancel() # Stop the timer if the user provides a response
비차단 스레드 접근 방식(Python 3)
import sys import msvcrt # For Windows import time # For Unix def input_with_timeout(prompt, timeout, timer=time.monotonic): sys.stdout.write(prompt) sys.stdout.flush() endtime = timer() + timeout result = [] while timer() < endtime: if msvcrt.kbhit(): # For Windows # Handle keyboard input else: # For Unix ready, _, _ = select.select([sys.stdin], [], [], timeout) if ready: return sys.stdin.readline().rstrip('\n') raise TimeoutExpired()
신호 처리 접근 방식(Unix 계열) 시스템)
import signal def alarm_handler(signum, frame): raise TimeoutExpired() def input_with_timeout(prompt, timeout): signal.signal(signal.SIGALRM, alarm_handler) signal.alarm(timeout) try: return input(prompt) finally: signal.alarm(0) # Cancel the alarm
운영 체제 및 차단 요구 사항에 가장 적합한 접근 방식을 선택하세요.
위 내용은 Python에서 시간 제한이 있는 사용자 입력을 어떻게 구현할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!