Syntaxfehler mit Print- und End-Keyword-Argument behandeln
Beim Versuch, den folgenden Code auszuführen:
if Verbose: print("Building internal Index for %d tile(s) ...", end=' ')
an Es tritt ein Fehler auf: „SyntaxError: Fehlende Klammern im Aufruf von ‚print‘“. Dies liegt daran, dass das Schlüsselwortargument end in Python 2.x nicht unterstützt wird.
Den Unterschied verstehen
In Python 2.x funktioniert print als Anweisung. Daher wird der obige Code als ein mit Tupeln umschlossener Aufruf von print interpretiert, wobei das letzte Argument ein String-Literal ist. Allerdings unterstützen String-Literale keine Schlüsselwortargumente, was zu dem Fehler führt.
Lösung für Python 2.x
Verwenden Sie in Python 2.x eine der folgenden Methoden Methoden zum Beenden einer Zeile mit einem Leerzeichen:
Fügen Sie dem Ausdruck ein letztes Komma hinzu Anweisung:
print "Building internal Index for %d tile(s) ...",
Verwenden Sie das sys.stdout-Modul direkt für eine bessere Kontrolle über die Ausgabe:
import sys sys.stdout.write("Building internal Index for %d tile(s) ... ")
Enabling End Schlüsselwortargument in Python 2.x
In neueren Versionen von Python 2.x (2.5 und höher) ermöglicht das Modul __future__ die Aktivierung der Druckfunktion als Funktion durch den Import von print_function. Diese Methode ist jedoch möglicherweise nicht mit älteren Python 2.x-Versionen kompatibel.
Übergang zu Python 3.x
In Python 3.x verhält sich print wie ein Funktion, die die Verwendung von Schlüsselwortargumenten wie end ermöglicht. Daher sollte der Originalcode ohne Änderungen korrekt in Python 3.x ausgeführt werden.
Das obige ist der detaillierte Inhalt vonWarum wirft Python 2.x bei Verwendung des Schlüsselwortarguments „end' einen „SyntaxError: Fehlende Klammern im Aufruf von ‚print'' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!