2012-04-15 4 views
2

Ich habe ein kleines Text-Abenteuer in Python 3.2.2 geschrieben und die .py-Datei an einen Freund geschickt, der einen Mac benutzt.var = Eingabe ("Drücken Sie eine beliebige Taste, um fortzufahren") - Warum funktioniert das nicht?

Er lief den Code nach dem Herunterladen der neuesten Python für Snow Leopard und es lief in Ordnung, bis die Zeile im Code: var = Eingabe ("drücken Sie eine beliebige Taste, um fortzufahren"). Danach blieb es einfach bei dieser Zeile, produzierte keine Fehler oder machte viel von irgendetwas, außer dass nichts passierte, als er etwas eintippte. Die Zeichen, die er eingegeben hatte, erschienen an der Eingabeaufforderung, aber das Programm ging nie vorwärts.

Ich fror dann das Programm mit cx_freeze und schickte es an meine Schwester, die Windows XP (wie ich bin) und sie hatte das gleiche Problem. Das Spiel hat bis zur nächsten Zeile gut gespielt.

Was mache ich falsch?

Danke!

Antwort

2

Sie verwenden wahrscheinlich Python 2.x und müssen die Eingabetaste drücken. input erwartet eine Zeile der Eingabe, kein einzelnes Zeichen. Die input-Funktion hat sich grundlegend zwischen 2.x und 3.x geändert, und das angezeigte Verhalten stimmt mit Python 2.x überein.

Für Hintergrundinformationen über die Änderung im Verhalten finden PEP 3111

+0

Ich habe gerade realisiert. Wow, fühl dich jetzt wie ein Verrückter. Vielen Dank. – user1311674

+0

Um es auszuarbeiten: 'input()' wird nur fortgesetzt, wenn es eine ganze Eingabezeile erhält, d. H. Durch Drücken der Eingabetaste. Wenn du immer nur einen Charakter bekommen willst, musst du das anders machen. –

+0

auf Python 2.7.2 Drücken Sie einfach auf eine Eingabe eingeben erzeugt ein: "SyntaxError: Unerwartete EOF während der Analyse" ist dieses Verhalten in Python 3k anders? – luke14free