Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Membaca Watak Tunggal daripada Input Pengguna Merentasi Platform Berbeza?

Bagaimana untuk Membaca Watak Tunggal daripada Input Pengguna Merentasi Platform Berbeza?

Linda Hamilton
Lepaskan: 2024-12-18 09:21:15
asal
639 orang telah melayarinya

How to Read a Single Character from User Input Across Different Platforms?

Membaca Aksara Tunggal daripada Input Pengguna Cross-Platform

Dalam pelbagai senario pengaturcaraan, adalah perlu untuk membaca satu aksara daripada input pengguna tanpa penimbal atau bergema. Fungsi ini serupa dengan fungsi getch() terkenal yang tersedia dalam Windows, tetapi pendekatan universal yang berfungsi merentasi berbilang platform adalah dikehendaki.

Penyelesaian:

Untuk mencapai matlamat ini pembacaan aksara merentas platform, anda boleh menggunakan resipi Python dipacu komuniti dari tapak ActiveState Recipes: "getch()-seperti bacaan aksara tidak buffer dari stdin pada kedua-dua Windows dan Unix." Resipi ini menyediakan pelaksanaan berasaskan kelas, memenuhi keperluan sistem berasaskan Windows dan Unix.

Pelaksanaan:

Coretan kod berikut menunjukkan pelaksanaan rentas- kelas membaca aksara platform:

class _Getch:
    """Gets a single character from standard input.  Does not echo to the
screen."""
    def __init__(self):
        try:
            self.impl = _GetchWindows()
        except ImportError:
            self.impl = _GetchUnix()

    def __call__(self):
        return self.impl()


class _GetchUnix:
    def __init__(self):
        import tty, sys

    def __call__(self):
        import sys, tty, termios
        fd = sys.stdin.fileno()
        old_settings = termios.tcgetattr(fd)
        try:
            tty.setraw(sys.stdin.fileno())
            ch = sys.stdin.read(1)
        finally:
            termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
        return ch


class _GetchWindows:
    def __init__(self):
        import msvcrt

    def __call__(self):
        import msvcrt
        return msvcrt.getch()


getch = _Getch()
Salin selepas log masuk

Untuk menggunakan kelas ini, hanya buat seketika kelas _Getch dan panggilnya. Hasilnya ialah aksara tunggal yang ditaip oleh pengguna, tanpa sebarang penimbalan atau bergema. Contohnya:

result = getch()
Salin selepas log masuk

Kesimpulan:

Pendekatan membaca aksara merentas platform ini boleh digunakan secara meluas dalam situasi di mana input pengguna segera diperlukan, seperti menangkap ketukan kekunci dalam aplikasi terminal atau melaksanakan antara muka pengguna interaktif.

Atas ialah kandungan terperinci Bagaimana untuk Membaca Watak Tunggal daripada Input Pengguna Merentasi Platform Berbeza?. 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