Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Melaksanakan Input Pengguna Terhad Masa dalam Python Menggunakan `raw_input()`?

Bagaimana untuk Melaksanakan Input Pengguna Terhad Masa dalam Python Menggunakan `raw_input()`?

Patricia Arquette
Patricia Arquetteasal
2024-11-19 16:35:02785semak imbas

How to Implement Time-Limited User Input in Python Using `raw_input()`?

Input Pengguna Terhad Masa dengan Input Mentah

Dalam Python, fungsi raw_input() boleh digunakan untuk menggesa pengguna untuk input. Walau bagaimanapun, mungkin terdapat senario di mana anda ingin mengehadkan masa menunggu untuk input pengguna bagi mengelak daripada menahan atur cara selama-lamanya.

Penyelesaian Menggunakan Pemasa Benang

Untuk silang- platform dan penyelesaian khusus Windows, anda boleh menggunakan threading.Timer daripada modul threading. Import modul yang diperlukan:

import thread
import threading

Tentukan fungsi yang dipanggil raw_input_with_timeout:

def raw_input_with_timeout(prompt, timeout=30.0):
    print(prompt, end=' ')    
    timer = threading.Timer(timeout, thread.interrupt_main)
    astring = None
    try:
        timer.start()
        astring = input(prompt)
    except KeyboardInterrupt:
        pass
    timer.cancel()
    return astring

Fungsi ini mencetak gesaan, memulakan pemasa dan menggesa input pengguna menggunakan input. Jika pengguna mengambil masa lebih lama daripada tamat masa yang ditentukan untuk memasukkan, pemasa mengganggu urutan utama, menyebabkan pengecualian KeyboardInterrupt dinaikkan. Pemasa dibatalkan untuk mengelakkan gangguan selanjutnya.

Jika masa input tamat, ia akan mengembalikan Tiada. Jika pengguna memberikan input sebelum tamat masa, ia akan mengembalikan rentetan yang dimasukkan.

Nota:

  • Untuk membezakan antara tamat masa dan gangguan yang dimulakan pengguna (cth. , jika pengguna menekan Ctrl C), anda boleh menyimpan petunjuk sama ada gangguan itu disebabkan oleh tamat masa dalam pembolehubah global atau penggunaan cuba/kecuali untuk mengendalikan pengecualian KeyboardInterrupt dan tetapkan bendera dengan sewajarnya.
  • Pendekatan ini tidak berfungsi pada Windows untuk 'fail biasa' seperti stdin. Untuk pelaksanaan khusus Windows, pertimbangkan untuk mengundi msvcrt.kbhit dan msvcrt.getche dalam gelung sambil menyemak tamat masa.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Input Pengguna Terhad Masa dalam Python Menggunakan `raw_input()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn