2017-09-14 6 views
1

Ich versuche einen Tastendruck zu erkennen, um festzustellen, ob der Benutzer wieder spielen möchte, aber msvcrt.getch() funktioniert einfach nicht für mich . Das ist mein Code:Kann .getch() nicht funktionieren (Python 2.7)

import msvcrt 
#the game here 
    print "Do you want to continue? Y/N" 
    if msvcrt.getch() == 'Y' or msvcrt.getch() == 'y': 
     print"Let's play again!" 
     print"-----------------" 
    elif msvcrt.getch() == 'N' or msvcrt.getch() == 'n' : 
     "Okay, hope you had fun" 
     break 

Irgendwelche Vorschläge?

EDIT: Die Antworten unten auf der Kommandozeile arbeiten, aus irgendeinem Grund einfach nicht in PyCharm

+0

Haben Sie Fehler, wenn Sie Ihren Code ausführen? – cosinepenguin

+0

Sie müssen 'getch()' __once__ aufrufen und dann diesen Wert vier Mal vergleichen. Wie es ist, vergleichen Sie nur den ersten Tastendruck des Benutzers gegen 'Y' und fordern dann einen zweiten Tastendruck an. – jasonharper

+0

@cosinepenguin @jasonharper Keine Fehler, registriert gerade keine Taste, als ob' getch() 'doesn Ich werde nicht einmal aus irgendeinem Grund angerufen. – sOfekS

Antwort

0

Sie nur msvcrt.getch() einmal anrufen sollte. Ändern Sie den Code in etwa wie folgt:

import msvcrt 
#the game here 
    print "Do you want to continue? Y/N" 
    response = msvcrt.getch() 
    if response.lower() == 'y': 
     print"Let's play again!" 
     print"-----------------" 
    elif response.lower == 'n' : 
     "Okay, hope you had fun" 
     break 
+0

Ja, das macht Sinn, aber es funktioniert immer noch nicht. Es scheint aus irgendeinem Grund den Tastenanschlag nicht zu registrieren. – sOfekS

Verwandte Themen