461 Stimmen

Was bedeutet "SyntaxError: Fehlende Klammern bei Aufruf von 'print'" in Python?

Wenn ich versuche, ein print-Statement in Python zu verwenden, zeigt es mir diesen Fehler an:

>>> print "Hallo, Welt!"
  File "", line 1
    print "Hallo, Welt!"
                        ^
SyntaxError: Fehlende Klammern beim Aufruf von 'print'

Was bedeutet das?


Siehe <a href="https://stackoverflow.com/questions/2456148/">SyntaxError für print mit Stichwortargument end=' '</a> für das gegenteilige Problem.

Siehe <a href="https://stackoverflow.com/questions/32122868">Python 3 print ohne Klammern</a> für Workarounds und Bestätigung, dass <code>print</code> in Python 3 nicht wie ein Statement funktionieren kann.

6voto

Larry Punkte 1202

In Python 3 können Sie nur drucken wie:

print("STRING")

Aber in Python 2 sind die Klammern nicht notwendig.

5voto

Alfa Bravo Punkte 1971

Ich könnte auch einfach hinzufügen, dass ich alles über die Syntaxänderung zwischen Python2.7 und Python3 wusste und mein Code korrekt geschrieben war als print("string") und sogar print(f"string")...

Aber nach einiger Zeit des Debuggens bemerkte ich, dass mein Bash-Skript Python wie folgt aufrief:

python dateiname.py

was zur Folge hatte, dass mein Python-Skript standardmäßig mit python2.7 aufgerufen wurde, was den Fehler verursachte. Also änderte ich mein Bash-Skript zu:

python3 dateiname.py

welches natürlich Python3 verwendet, um das Skript auszuführen, was den Fehler behoben hat.

3voto

CinnamonCubing Punkte 183

print('Hallo, Welt!')

Du verwendest Python 3, wo du Klammern benötigst beim Drucken.

3voto

Kshitij Agarwal Punkte 1730

Also bekam ich diesen Fehler

from trp import BoundingBox, Document
File "C:\Users\Kshitij Agarwal\AppData\Roaming\Python\Python39\site-packages\trp\__init__.py", line 31
print ip
      ^ 
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(ip)?

Das ist ein Python-Paketfehler, bei dem Python2 verwendet wurde und du wahrscheinlich dies auf Python3 ausführst.

Eine Lösung könnte sein, Python2 print something in Python3 print(something) für jede Zeile in jeder Datei im Packungsordner umzuwandeln, was keine gute Idee ist. Ich meine, du kannst es tun, aber es gibt immer noch bessere Wege.

Um dieselbe Aufgabe auszuführen, gibt es ein Paket namens 2to3 in Python, das Python2-Skripte in Python3-Skripte umwandelt. Um es zu installieren, führe den Befehl im Terminal aus.

pip install 2to3

Dann ändere im Terminal das Verzeichnis zum Ort, an dem sich die Paketdateien befinden, in meinem Fall - C:\Users\Kshitij Agarwal\AppData\Roaming\Python\Python39\site-packages\trp

Führe nun den Befehl aus

2to3 . -w

und voilà, alle Python2-Dateien in diesem Verzeichnis werden in Python3 konvertiert.

Hinweis:- Die obigen Befehle gelten auch für andere Betriebssysteme. Nur der Python-Paketpfad wird je nach System variieren.

2voto

Chad Van De Hey Punkte 2606

Jenseits der direkten Antworten hier sollte man auch den anderen wichtigen Unterschied zwischen Python 2 und 3 erwähnen. Das offizielle Python-Wiki geht auf fast alle wichtigen Unterschiede ein und konzentriert sich darauf, wann man eine der Versionen verwenden sollte. Dieser Blog-Beitrag erklärt ebenfalls sehr gut das aktuelle Python-Universum und das noch ungelöste Rätsel des Umstiegs auf Python 3.

Soweit ich sehen kann, fängst du gerade an, die Python-Sprache zu lernen. Du solltest die genannten Artikel lesen, bevor du weiter den Weg mit Python 3 gehst. Du musst nicht nur einige deiner Syntax ändern, sondern auch darüber nachdenken, welche Pakete für dich verfügbar sein werden (ein Vorteil von Python 2) und potenzielle Optimierungen, die in deinem Code vorgenommen werden könnten (ein Vorteil von Python 3).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X