Bagaimanakah Saya Boleh Mengumpul Input Pengguna dalam Python Tanpa Memerlukan Kunci Enter?

Susan Sarandon
Lepaskan: 2024-11-08 16:05:02
asal
243 orang telah melayarinya

How Can I Gather User Input in Python Without Requiring the Enter Key?

Pengumpulan Input daripada Pengguna Tanpa Memerlukan Enter Key Press

Apabila berinteraksi dengan pengguna dalam shell menggunakan raw_input dalam Python, pengguna biasanya dikehendaki untuk tekan kekunci Enter selepas memasukkan respons mereka. Ini boleh menyusahkan, terutamanya jika anda ingin menyelaraskan proses input. Begini cara untuk melakukannya dalam mesin *nixes:

Windows

Untuk Windows, anda memerlukan modul msvcrt, khususnya fungsi msvcrt.getch(). Fungsi ini membaca tekan kekunci dan mengembalikan aksara yang terhasil tanpa menggemakannya ke konsol. Ia menyekat pelaksanaan jika penekanan kekunci belum tersedia tetapi tidak menunggu Enter.

import msvcrt

c = msvcrt.getch()
if c.upper() == 'S':
    print('YES')
Salin selepas log masuk

Unix

Untuk sistem berasaskan Unix, pertimbangkan untuk menggunakan fungsi getch daripada resipi berikut:

def getch():
    """
    getch() -> key character

    Read a single keypress without echoing to the console.
    """
    import tty
    import sys

    fd = sys.stdin.fileno()
    old_settings = tty.tcgetattr(fd)
    try:
        tty.setraw(fd)
        ch = sys.stdin.read(1)
    finally:
        tty.tcsetattr(fd, tty.TCSADRAIN, old_settings)
    return ch
Salin selepas log masuk

Fungsi ini melumpuhkan penimbal terminal, membenarkan input tekan kekunci tunggal tanpa menunggu kekunci Enter.

Dengan melaksanakan pendekatan ini, anda boleh mengumpulkan input pengguna dalam anda Skrip Python tanpa perlu menekan Enter, meningkatkan pengalaman pengguna semasa interaksi shell.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengumpul Input Pengguna dalam Python Tanpa Memerlukan Kunci Enter?. 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