2017-09-09 3 views
-1

Ich weiß, dass diese Frage schon einmal gestellt wurde, aber keine der dort gegebenen Lösungen schien für mich zu funktionieren. Wie der Titel schon sagt, habe ich ein Schlachtschiff-Spiel in Python unter Windows geschrieben und es funktionierte dort, aber als ich versuchte, es innerhalb des Linux-Terminals auszuführen, bekam ich einen Fehler, den ich unter Windows nie bekam. Here's the code.Python-Programm funktioniert unter Windows, aber nicht unter Linux

Es lädt normal, aber wenn ich die Startposition eingeben, sagt es zum Beispiel NameError: name 'a0' is not defined. Ich habe versucht, !/usr/bin/python am Anfang zu setzen, aber nichts hat sich geändert. Es tut mir leid, wenn das ein Duplikat ist oder wenn ich etwas wirklich Offensichtliches vermisse, aber ich würde wirklich etwas Hilfe schätzen. Danke im Voraus.

+0

Bitte zeigen Sie die gesamte Traceback für den Fehler. Es sieht so aus, als ob Sie Python 3 in Windows und Python 2 in Linux ausführen. Überprüfen Sie Ihre Python-Versionen. Die Funktion 'input' verhält sich in den beiden Versionen unterschiedlich. –

+0

nicht '!/Usr/bin/python' sondern' #!/Usr/bin/python' oder '#!/Usr/bin/env python' – RedEyed

+0

Es ist ein Tippfehler. Ich habe es mit '#!/Usr/bin/python' und' #!/Usr/bin/env python' ausprobiert, beides funktionierte nicht. – vojzzo

Antwort

0

Der Fehler scheint in der Art zu sein, wie Sie Eingaben vom Terminal akzeptieren. Für Textdaten zu akzeptieren (a0, R, L, U, D etc ...) müssen Sie

raw_input() 

anstelle der Eingabe verwendet werden. Ersetzen Sie einfach input() durch raw_input() und es funktioniert auf allen Plattformen.

+0

Wie erwarten Sie, dass 'raw_input' auf Python 3 funktioniert? – Matthias

+0

Sicher wird es Matthias nicht. Meine Antwort bezieht sich auf die Frage von op, wo klar ist, dass der Fehler ein NameError bei der Verwendung von input() ist (ich habe den Code durchlaufen), was darauf hinweist, dass auf ops Rechner Python 2.x läuft. Und ja, Sie haben Recht, eine andere Möglichkeit kann die Verwendung von Python 3 sein, um diesen Fehler zu beheben. –

Verwandte Themen