web-dev-qa-db-fra.com

Erreur de syntaxe lors de l'impression avec Python 3

Pourquoi est-ce que je reçois une erreur de syntaxe lors de l'impression d'une chaîne dans Python 3?

>>> print "hello World"
  File "<stdin>", line 1
    print "hello World"
                      ^
SyntaxError: invalid syntax
259
Scott

Dans Python 3, printest devenue une fonction . Cela signifie que vous devez maintenant inclure les parenthèses, comme indiqué ci-dessous:

print("Hello World")
328
Unknown

Il semble que vous utilisiez Python 3.0, dans lequel l'impression est devenue une fonction appelable plutôt qu'une instruction.

print('Hello world!')
47
brianz

Parce que dans Python 3, print statement a été remplacé par print() function, avec des arguments de mot-clé pour remplacer la majeure partie de la syntaxe spéciale de l'ancienne instruction print. Donc, vous devez l'écrire comme

print("Hello World")

Mais si vous écrivez ceci dans un programme et que quelqu'un utilisant Python 2.x essaye de s'exécuter, il obtiendra une erreur. Pour éviter cela, il est recommandé d’importer une fonction d’impression.

from __future__ import print_function

Maintenant, votre code fonctionne sur les versions 2.x et 3.x

Consultez également les exemples ci-dessous pour vous familiariser avec la fonction print ().

Old: print "The answer is", 2*2
New: print("The answer is", 2*2)

Old: print x,           # Trailing comma suppresses newline
New: print(x, end=" ")  # Appends a space instead of a newline

Old: print              # Prints a newline
New: print()            # You must call the function!

Old: print >>sys.stderr, "fatal error"
New: print("fatal error", file=sys.stderr)

Old: print (x, y)       # prints repr((x, y))
New: print((x, y))      # Not the same as print(x, y)!

Source: Quoi de neuf dans Python 3.0?

28
ChillarAnand

Dans Python 3.0, print est une fonction régulière qui nécessite ():

print("Hello world")
18
Ayman Hourieh

Dans Python 3, il s'agit de print("something") et non de print "something".

16
Paweł Polewicz

Il semble que vous utilisiez Python 3. Dans Python 3, print a été remplacé par une méthode plutôt que par une instruction. Essaye ça:

print("hello World")
15
TwentyMiles

Dans Python 3, vous devez utiliser print('some code'). En effet, dans Python 3, il est devenu une fonction. Si vous le devez, vous pouvez utiliser votre code Python 2 et le convertir en code Python 3 à l'aide de 2to3 - c'est un excellent programme intégré fourni avec Python. Pour plus d'informations, voir Python 2to3 - Convertissez votre Python 2 en Python 3 automatiquement!.

8
AtPython

Vous devez utiliser des crochets avec print:

print("Hello, World!")
7
user4909217

Dans Python 2.X print est un mot clé , alors que dans Python 3.X print devient une fonction, de sorte que le La manière correcte de le faire est print(something).

Vous pouvez obtenir la liste des mots-clés pour chaque version en exécutant les opérations suivantes:

>>> import keyword
>>> keyword.kwlist
6
lmiguelvargasf