Ich schreibe ein Python-Programm (unter OS X/Linux), in dem ein Benutzer einige Wörter in einer while-Schleife eingeben muss. Dies ist der relevante Teil davon:Stoppen Python-Eingabe, wenn ein bestimmtes Zeichen eingegeben wird
i = 0
array = []
while (i < 10):
array.append(raw_input("Prompt: "))
i = i + 1
Allerdings Ich mag würde die Eingabe, sobald der Benutzer ein SPACE, ohne die Notwendigkeit zu stoppen drücken Sie die Eingabetaste.
Ich weiß, ich kann dies nicht mit raw_input
tun, aber ich habe keine Möglichkeit zu erreichen, was ich versuche zu tun. Grundsätzlich möchte ich, dass der Benutzer ein Wort nach dem anderen eingeben kann, indem er die Taste SPACE anstelle von ENTER benutzt, um das nächste Wort einzugeben.
Haben Sie eine Idee? Danke im Voraus.
dann müssen Sie andere Eingabemethoden verwenden. raw_input wartet, bis ein eol/eod hinzugefügt wird (z. B. Benutzertreffer zurück). Sie müssen jeden Schlüsselstrich verarbeiten und nach Leerzeichen suchen. –
Mit 'raw_input',' input' oder 'sys.stdin.read (1)' ist das auch nicht möglich. Es gibt keine generische Lösung, die auf jedem Betriebssystem funktioniert. – pts
Das ist ziemlich plattformspezifisch. [Siehe hier] (http://stackoverflow.com/questions/510357/python-read-a-single-character-from-the-user) - Sie könnten auch etwas wie tkinter für die Behandlung von solchen Ereignissen oder Neuzuordnung verwenden die Eingabetaste während des Eingabeprozesses in die Leertaste - aber wahrscheinlich komplizierter als Sie suchen und Sie würden (müssen) für verschiedene Tastaturlayouts benötigen/müssen. – sytech