Bagaimanakah Saya Boleh Melaksanakan Tamat Masa untuk Input Pengguna dalam Python?

Mary-Kate Olsen
Lepaskan: 2024-11-15 13:30:02
asal
337 orang telah melayarinya

How Can I Implement a Timeout for User Input in Python?

Tamat masa untuk Input Pengguna dalam Python

Dalam Python, fungsi raw_input() menggesa pengguna untuk input, tetapi ia menunggu selama-lamanya sehingga pengguna memasukkan sesuatu. Untuk situasi di mana anda perlu mengenakan had masa pada input pengguna, penyelesaian tersedia menggunakan modul penjalinan.

Fungsi raw_input_with_timeout() , seperti yang dicadangkan oleh pengguna, mengambil dua hujah: prompt (teks yang dipaparkan kepada pengguna) dan tamat masa (had masa dalam saat). Ia memulakan urutan pemasa yang akan mengganggu urutan utama selepas tamat masa yang ditentukan.

Berikut ialah versi kod yang dipertingkatkan:

import threading

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

Jika pengguna memasukkan input sebelum tamat masa, input dikembalikan sebagai rentetan. Jika tamat masa dicapai, Tiada dikembalikan untuk menunjukkan bahawa pengguna tidak memberikan input dalam jangka masa yang ditentukan.

Perhatikan bahawa penyelesaian ini menganggap bahawa pengguna tidak menaip sangat perlahan. Jika anda perlu mengambil kira penaip perlahan, anda boleh mengira semula penamat (masa tamat masa berlaku) selepas setiap input aksara.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Tamat Masa untuk Input Pengguna dalam Python?. 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