Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Saya Boleh Mengumpul Input Pengguna dalam Python Tanpa Memerlukan Kunci Enter?

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

Susan Sarandon
Susan Sarandonasal
2024-11-08 16:05:02190semak imbas

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')

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

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!

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