Heim >Backend-Entwicklung >Python-Tutorial >Warum erhalte ich einen SyntaxError, wenn ich „end=' „mit „print' in Python verwende?
Beim Versuch, den Code zu verwenden:
if Verbose: print("Building internam Index for %d tile(s) ...", end=' ')
Sie werden mit einem SyntaxError konfrontiert, der darauf hinweist, dass end='' eine falsche Syntax ist. Dieser Fehler ist auf einen entscheidenden Unterschied zwischen Python 2.x und 3.x zurückzuführen.
In Python 2.x wird print als Anweisung und nicht als Funktion betrachtet. Daher ist die Verwendung von Schlüsselwortargumenten wie end nicht zulässig. Stattdessen müssen Sie Argumente durch Kommas trennen oder ein Tupel als Argument für die print-Anweisung verwenden. In Python 2.x entspricht der obige Code beispielsweise:
print(("Building internam Index for %d tile(s) ...", end=" "))
oder
print("Building internam Index for %d tile(s) ...", end=" ")
In Python 3.x ist print jedoch eine echte Funktion und akzeptiert Schlüsselwortargumente. Dies ermöglicht eine optimierte Syntax, bei der Sie Schlüsselwortargumente direkt für die Druckfunktion angeben können, wie im Originalbeispiel.
Um dieses Problem in Python 2.x zu beheben, können Sie den Code so ändern, dass er Argumente trennt mit Kommas oder verwenden Sie das Modul sys.stdout für eine umfassendere Kontrolle über die Ausgabe. Alternativ können Sie in neueren Versionen von Python 2.x (2.5 und höher) das Modul future importieren und die print_function-Funktion aktivieren:
from __future__ import print_function
Dadurch wird die erweiterte Druckfunktion aktiviert Syntax in Ihrer Skriptdatei, sodass Sie Schlüsselwortargumente wie end verwenden können. Beachten Sie, dass dieser Ansatz nicht allgemein mit älteren Versionen von Python 2.x kompatibel ist.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich einen SyntaxError, wenn ich „end=' „mit „print' in Python verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!