Ich habe einen neuen Python-Benutzer mit etwas Code geholfen, und er fragte mich, warum der Python-Interpreter einige Syntaxfehler in der Zeile nach dem eigentlichen Fehler zeigt. Betrachten Sie den folgenden Code ein:Warum zeigt der Python-Interpreter Syntaxfehler in der folgenden Zeile?
x = [1, 2, 3
print x
Ein Syntaxfehler wird für die Linie mit print x
gezeigt werden, obwohl der Fehler wirklich in der vorhergehenden Zeile ist.
Dies kann sehr verwirrend sein (und Zeitverschwendung) das erste Mal, wenn Sie darauf stoßen, es ist ein sehr häufiges Problem (Suche nach "Python Syntax Fehler" auf Ihrer Lieblings-Suchmaschine), und es scheint wie es würde Es ist schwer zu korrigieren ... warum wurde es nicht repariert? Hat der derzeitige Ansatz einen gewissen Nutzen?
Da der Syntaxfehler _istnist_ in der ersten Zeile. Wenn Sie eine schließende Klammer ']' in Zeile 2 einfügen, ist dies eine gültige Syntax. Es ist also nichts falsch mit Zeile 1. –
Es ist nur ein Syntaxfehler, wenn der Parser auf etwas trifft, das er nicht erwartet hat, wenn das Grammatik-Bit analysiert wird. Es ist also einfacher, es als "das ist, wo es angefangen hat, keinen Sinn zu machen" statt "das ist, wo Sie es korrigieren müssen" ... weil an diesem Punkt - es hat keine Ahnung, was Sie sagen wollen - also hat man nicht viel Ahnung davon, welcher Teil falsch ist ... –
Wäre es nicht sinnvoll, den Fehler in der letzten Zeile mit Listensyntax zu zeigen? Ich bin mir sicher, dass praktisch jeder neue Python-Programmierer damit konfrontiert wird und am Ende Zeit verschwendet und verwirrt bleibt. – PProteus