2009-06-02 23 views
94

Sto imparando Python e non può nemmeno scrivere il primo esempio:Sintassi non valida quando si utilizza "stampa"?

print 2 ** 100 

questo dà SyntaxError: invalid syntax

che punta al 2.

Perché è questo? Sto usando la versione 3.1

+1

Dove hai trovato questo esempio? È in un libro o in un sito web? –

+0

Potrebbe essere * Imparare Python *. –

+0

jleedev è corretto; è OReilly Learning Python 3rd edition 2007. –

risposta

201

Questo perché in Python 3, hanno sostituito il printdichiarazione con la funzioneprint.

La sintassi è ora più o meno la stessa di prima, ma richiede parens:

Dalle "what's new in python 3" documenti:

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

Vedi questo per ulteriori informazioni: [Perché la dichiarazione di stampa non è pythonic?] (http://stackoverflow.com/questions/1053849/why-print-statement-is-not-pythonic) – Will

12

È necessario parentesi:

print(2**100) 
2

La sintassi è cambiato in nuove versioni 3.x, piuttosto che versioni vecchie 2.x: ad esempio in python 2.x si può scrivere: print "Ciao mondo nuovo" ma nella nuova versione 3.x è necessario utilizzare la nuova sintassi e scrivere in questo modo: di stampa ("nuovo mondo Hi")

controllo della documentazione: http://docs.python.org/3.3/library/functions.html?highlight=print#print

Problemi correlati