Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Melaksanakan Tamat Masa untuk Input Pengguna dalam Python?

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

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-15 13:30:02431semak imbas

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 argumen: 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

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!

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