2009-06-02 4 views
94

j'apprends Python et ne peut pas écrire même le premier exemple:Syntaxe non valide lors de l'utilisation de "print"?

print 2 ** 100 

cela donne SyntaxError: invalid syntax

montrant le 2.

Pourquoi est-ce? J'utilise la version 3.1

+1

Où avez-vous trouvé cet exemple? Est-ce dans un livre ou un site Web? –

+0

Cela peut être * Apprendre Python *. –

+0

jleedev est correct; c'est OReilly Learning Python 3ème édition 2007. –

Répondre

201

C'est parce qu'en Python 3, ils ont remplacé le printdéclaration avec la printfonction.

La syntaxe est plus ou moins la même qu'avant, mais il faut parens:

De la "what's new in python 3" docs:

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)! 
+0

Voir ceci pour plus d'informations: [Pourquoi la déclaration d'impression n'est pas pythonique?] (http://stackoverflow.com/questions/1053849/why-print-statement-is-not-pythonic) – Will

12

Vous devez parenthèses:

print(2**100) 
7

Ils ont changé print en Python 3. 2 était une déclaration, maintenant c'est une fonction et nécessite une parenthèse.

Voici the docs from Python 3.0.

2

La syntaxe est modifiée dans les nouvelles versions 3.x plutôt que les anciennes versions 2.x: par exemple dans 2.x python vous pouvez écrire: print « Salut nouveau monde » mais dans la nouvelle version 3.x vous devez utiliser la nouvelle syntaxe et l'écrire comme ceci: print (« monde nouveau Salut »)

vérifier la documentation: http://docs.python.org/3.3/library/functions.html?highlight=print#print

Questions connexes