So stellen Sie fest, dass in Python3 ein Kreuzschlüssel eingegeben wurde

Einführung

Sie können das Curses-Modul verwenden, um den Schlüssel zu bestimmen. Hier ist eine Methode, die nicht davon abhängt https://docs.python.org/ja/3/library/curses.html#constants

Vorwort

Dies ist mein eigenes Memo. Es ist eine einfache Implementierung. Ich möchte feststellen, dass ein Sonderzeichen wie ein Kreuzschlüssel eingegeben wurde.

Voraussetzung ist die Kenntnis der Unicode-Steuerzeichen. wikipedia

Wo es stecken bleibt

getch erhält die Eingabe zeichenweise. Die Pfeiltasten mussten jedoch dreimal eingegeben werden. Auf dem Aufwärtspfeil steht beispielsweise "27 91 65". Wenn nichts unternommen wird, können nicht nur keine Sondertasten wie Pfeiltasten ermittelt werden, sondern es werden auch unerwünschte Eingaben empfangen. Deshalb habe ich es wie folgt implementiert.

Quelle

getch Eine Funktion, die eine einzelne Zeicheneingabe akzeptiert ord ist eine Funktion, die Zeichen in Unicode konvertiert. chr ist eine Funktion, die Unicode in Zeichen konvertiert. Der Code ist redundant, was für mich auch als Debugging dient.

#Bereiten Sie eine Funktion vor, die Zeichen für Zeichen anstelle von Eingaben empfängt.
#Versuchen Sie es für Windows, außer Nonaka für Linux
try:
    from msvcrt import getch
except ImportError:
    import sys
    import tty
    import termios
    def getch():
          
            fd = sys.stdin.fileno()
            old = termios.tcgetattr(fd)
            try:
                tty.setraw(fd)
                return sys.stdin.read(1)
            finally:
                termios.tcsetattr(fd, termios.TCSADRAIN, old)

#Alias für Unicode-Steuerzeichen
EOT = 3
TAB = 9
ESC = 27

#Hauptschleife
while True:
    key = ord(getch())
    if key == EOT:
        break
    elif key == TAB:
        print('keydown TAB')
    elif key == ESC:
        key = ord(getch())
        if key == ord('['):
            key = ord(getch())
            if key == ord('A'):
                print('keydown uparrow')
                continue
            elif key == ord('B'):
                print('keydown downarrow')
                continue
            elif key == ord('C'):
                print('keydown leftarrow')
                continue
            elif key == ord('D'):
                print('keydown rightarrow')
                continue
    else:
        message = f'keydown {chr(key)}'
        print(message)

Ergebnis der Ausführung

image.png Sie können sehen, dass das Urteil richtig getroffen wurde.

Am Ende

Ich habe es diesmal nicht implementiert, weil der Code redundant wird. Wenn Sie sich jedoch den Unicode ansehen, wenn Sie einen speziellen Schlüssel eingeben und alle mit bedingter Verzweigung aufzählen, können Sie ein Urteil fällen. Der ähnliche Code in diesem Artikel kann beim Erstellen Ihrer eigenen Anwendung hilfreich sein. Wenn jemand eine gute Schreibweise kennt, lass es mich wissen.

Referenz

Recommended Posts

So stellen Sie fest, dass in Python3 ein Kreuzschlüssel eingegeben wurde
So testen Sie, ob die Ausnahme in Python unittest ausgelöst wird
[Python] So überprüfen Sie, ob der Schlüssel im Wörterbuch vorhanden ist
Verwendung ist und == in Python
So überprüfen Sie, ob sich der angegebene Schlüssel im angegebenen Bucket in Boto 3 befindet
Verwendung von Sternchen (*) in Python. Vielleicht ist das alles? ..
Tastenanschlag in Python
Tastenanschlag in Python
Verwendung der C-Bibliothek in Python
So erhalten Sie die Dateien im Ordner [Python]
So erhalten Sie den Variablennamen selbst in Python
So ermitteln Sie die Anzahl der Stellen in Python
Wie Sie das aktuelle Verzeichnis in Python in Blender kennen
Schlüsseleingabe, die nicht auf Schlüsseleingabe in Python wartet
Suchen Sie den Teil 575 aus Wikipedia in Python
So ermitteln Sie den Koeffizienten der ungefähren Kurve, die in Python durch die Scheitelpunkte verläuft
Verwendung des in Lobe in Python erlernten Modells
Wie man in Python entwickelt
[Python] Wie man Skalar beurteilt
[Python] So geben Sie Listenwerte der Reihe nach aus
[Python] Verwendung von input ()
So geben Sie eine Zeichenfolge in Python ein und geben sie unverändert oder in die entgegengesetzte Richtung aus.
So überprüfen Sie in Python, ob sich eines der Elemente einer Liste in einer anderen Liste befindet
So finden Sie das erste Element, das den Kriterien in der Python-Liste entspricht
So debuggen Sie eine Standard-Python-Bibliothek in Visual Studio
Verwendung der Methode __call__ in der Python-Klasse
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python
Die Geschichte, den privaten Schlüssel mit chmod auf 600 zu setzen
So sammeln Sie Bilder in Python
Verwendung von SQLite in Python
Im Python-Befehl zeigt Python auf Python3.8
So erhalten Sie die Python-Version
[Python] Was ist der sortierte Schlüssel?
Wie man MySQL mit Python benutzt
So verpacken Sie C in Python
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
Umgang mit Japanisch mit Python
So löschen Sie "(base)", das im Terminal angezeigt wird, wenn Anaconda auf einem Mac installiert ist
[VLC] Wie man mit dem Problem umgeht, dass es während der Wiedergabe nicht im Vordergrund steht
Wie ist der Fortschritt? Lassen Sie uns mit dem Boom in Python weitermachen
Spielen Sie Sounds in Python ab, vorausgesetzt, die Tastatur ist eine Klaviertastatur
So bestimmen Sie die Existenz eines Selenelements in Python
Geben und meinen Sie die Einschränkungsoption in scipy.optimize.minimize
Das 15. Offline-Echtzeit-Schreiben eines Referenzproblems in Python
17. Offline-Echtzeit So lösen Sie Schreibprobleme mit Python
[Einführung in Python] Wie verwende ich den Operator in in der for-Anweisung?
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
Das 14. Referenzproblem beim Schreiben in Echtzeit in Python
[Anfängernotiz] So legen Sie den Lesepfad der Bibliothek in Python fest
Was tun, wenn der Werttyp in Python nicht eindeutig ist?
Das 18. Offline-Echtzeit-Schreiben eines Referenzproblems in Python
So zeigen Sie Bytes in Java und Python auf die gleiche Weise an
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Dynamisches Definieren von Variablen in Python
So machen Sie R chartr () in Python
So gehen Sie mit dem Problem um, dass das aktuelle Verzeichnis verschoben wird, wenn Python von Atom ausgeführt wird
So arbeiten Sie mit BigQuery in Python
Wie bekomme ich Stacktrace in Python?
So zeigen Sie die neunundneunzig Tabelle in Python an