Input Pengguna Terhad Masa dalam Python
Apabila meminta input pengguna dengan fungsi input, anda mungkin mahu mengehadkan masa pengguna mempunyai untuk bertindak balas. Ini membolehkan anda mengendalikan tamat masa dengan anggun dan memberikan maklum balas yang sesuai.
Menggunakan Input Terhad Masa
Untuk melaksanakan input terhad masa, pertimbangkan pendekatan berikut:
Pendekatan Benang Menyekat (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
Pendekatan Benang Tidak Menghalang (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()
Pendekatan Pengendalian Isyarat (seperti Unix sistem)
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
Pilih pendekatan yang paling sesuai dengan sistem pengendalian anda dan keperluan menyekat.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Input Pengguna Terhad Masa dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!