Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Melaksanakan Input Papan Kekunci Pengguna Terbatas Masa dalam Python Tanpa Ralat?
Input Papan Kekunci Pengguna dengan Respons Kekangan Masa
Apabila menggesa pengguna untuk input, selalunya berguna untuk menetapkan tamat masa untuk menghalang program dari tak tentu hala menunggu jawapan. Walau bagaimanapun, percubaan untuk melaksanakan ciri ini menggunakan pendekatan yang dicadangkan dalam forum dalam talian, seperti yang dirujuk (http://mail.python.org/pipermail/python-list/2006-January/533215.html), mungkin menghadapi masalah.
Secara khusus, percubaan untuk melaksanakan tamat masa menggunakan sama ada sys.input.readline atau timer.sleep selalunya mengakibatkan perkara berikut ralat:
<type 'exceptions.TypeError'>: [raw_]input expected at most 1 arguments, got 2
Ralat ini menunjukkan bahawa fungsi input menjangkakan paling banyak satu argumen, tetapi dua argumen sedang dihantar kepadanya.
Penyelesaian Dipertingkat
Untuk menangani isu ini, pendekatan yang lebih mantap melibatkan penggunaan modul terpilih, yang menyediakan cara yang lebih mudah alih dan cekap untuk mengendalikan input dengan tamat masa. Kod berikut menunjukkan pendekatan ini:
import sys, select print("You have 10 seconds to respond!") # Set a timeout of 10 seconds timeout = 10 # Create a list of input sources to monitor (in this case, only standard input) inputs = [sys.stdin] # Use select.select to monitor for input within the specified timeout readable, _, _ = select.select(inputs, [], [], timeout) # Check if any input was received within the timeout if readable: # Read and process the input input_str = sys.stdin.readline().strip() print("You said:", input_str) else: # No input was received within the timeout print("You said nothing!")
Penyelesaian ini menggunakan fungsi select.select untuk memantau input daripada input standard dengan tamat masa yang ditentukan. Jika input diterima dalam masa tamat, ia diproses. Jika tidak, atur cara mencetak mesej yang menunjukkan bahawa tiada input diterima.
Dengan menggunakan modul pilih, pendekatan ini mengelakkan TypeError yang ditemui dalam percubaan sebelumnya dan menyediakan cara yang lebih dipercayai untuk melaksanakan input pengguna terhad masa dalam Python .
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Input Papan Kekunci Pengguna Terbatas Masa dalam Python Tanpa Ralat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!