Hier ist mein Python-Code. Könnte mir jemand zeigen, was daran falsch ist.
while 1:
date=input("Example: March 21 | What is the date? ")
if date=="June 21":
sd="23.5° North Latitude"
if date=="March 21" | date=="September 21":
sd="0° Latitude"
if date=="December 21":
sd="23.5° South Latitude"
if sd:
print sd
Und hier ist was passiert:
>>>
Example: March 21 | What is the date?
Traceback (most recent call last):
File "C:\Users\Daniel\Desktop\Solar Declination Calculater.py", line 2, in <module>
date=input("Example: March 21 | What is the date? ")
File "<string>", line 0
^
SyntaxError: unexpected EOF while parsing
>>>
quelle
/usr/bin/python
ist eine ausführbare Python 2-Datei und/usr/bin/python3
Ihre ausführbare Python 3-Datei. Mit Mint 19 ist die Standardpython des Systems Python 3, glaube ich.Einrücken! zuerst. Das würde sich um deine kümmern
SyntaxError
.Abgesehen davon gibt es einige andere Probleme in Ihrem Programm.
Verwenden
raw_input
Sie diese Option, wenn Sie eine Zeichenfolge als Eingabe akzeptieren möchten.input
Nimmt nur Python-Ausdrücke und es macht eineeval
auf sie.Sie verwenden bestimmte 8-Bit-Zeichen in Ihrem Skript wie
0°
. Möglicherweise müssen Sie die Codierung oben in Ihrem Skript mithilfe einer# -*- coding:latin-1 -*-
Zeile definieren, die üblicherweise als Codierungs-Cookie bezeichnet wird.Normalisieren Sie beim Str-Vergleich auch die Strings und vergleichen Sie sie. (Personen, die lower () it verwenden) Dies trägt dazu bei, dass Benutzereingaben wenig Flexibilität bieten.
Ich denke auch, dass das Lesen des Python-Tutorials für Sie hilfreich sein könnte. :) :)
Beispielcode
quelle
Ich hatte diesen Fehler aufgrund einer fehlenden schließenden Klammer in einer Zeile.
Ich hatte ein Problem mit der Zeile:
invalid syntax (<string>, line ...)?
Am Ende meines Skripts.Ich habe diese Zeile gelöscht und dann die EOF-Nachricht erhalten.
quelle
Während die Antwort von @ simon in Python 2 am hilfreichsten
raw_input
ist , ist sie in Python 3 nicht vorhanden. Ich würde Folgendes vorschlagen, um sicherzustellen, dass Ihr Code in Python 2 und Python 3 gleich gut funktioniert:Erstens, Pip installieren Zukunft:
Zweitens: Importieren Sie Eingaben aus future.builtins
Und für das oben aufgeführte spezifische Beispiel:
quelle
Ich verwende den folgenden Code, um die Kompatibilität mit Python 2 und 3 zu erhalten
quelle
Ich versuche im Allgemeinen zu antworten, nicht im Zusammenhang mit dieser Frage. Dieser Fehler tritt im Allgemeinen auf, wenn Sie eine Syntax in zwei Hälften teilen und die andere Hälfte vergessen. Wie in meinem Fall war es:
da suchte Python nach einem
Es wurde jedoch ein EOF (End Of File) festgestellt, daher der Fehler. Überprüfen Sie, ob Ihr Code eine unvollständige Syntax enthält.
quelle
Ich bin auf das Gleiche gestoßen und habe herausgefunden, worum es geht. Wenn wir die Methodeneingabe verwenden, sollte die Antwort, die wir eingeben sollten, in doppelte Anführungszeichen stehen. Wie in deiner Linie
date=input("Example: March 21 | What is the date? ")
Sie sollten eingeben, wenn Sie auf der Konsole "12/12/2015" dazu aufgefordert werden - beachten Sie die
"
Sache vorher und nachher. Auf diese Weise wird dies als Zeichenfolge verwendet und wie erwartet verarbeitet. Ich bin nicht sicher, ob dies eine Einschränkung dieserinput
Methode ist - aber es funktioniert so.Ich hoffe es hilft
quelle
Nach der ersten if-Anweisung anstatt "if" einzugeben, geben Sie "elif" ein und dann sollte es funktionieren.
Ex.
quelle
Sie können versuchen, Ihren Code wie gewohnt für Python mit dem normalen
input
Befehl zu schreiben . Der Trick besteht jedoch darin, zu Beginn des Programmierens den Befehl hinzuzufügeninput=raw_input
.Jetzt müssen Sie nur noch deaktivieren (oder aktivieren), je nachdem, ob Sie in Python / IDLE oder Terminal arbeiten. Sie tun dies, indem Sie bei Bedarf einfach '#' hinzufügen.
Zur Verwendung in Python / IDLE ausgeschaltet
Und natürlich für den Einsatz im Terminal eingeschaltet.
Ich bin nicht sicher, ob es immer funktionieren wird, aber es ist eine mögliche Lösung für einfache Programme oder Skripte.
quelle
Überprüfen Sie, ob alle Parameter von Funktionen definiert sind , bevor Sie sie aufrufen. Ich hatte dieses Problem beim Üben von Kaggle.
quelle