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

Patricia Arquette
Lepaskan: 2024-11-19 16:35:02
asal
773 orang telah melayarinya

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
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan