2009-06-02 9 views
94

estoy aprendiendo Python y ni siquiera se puede escribir el primer ejemplo:Sintaxis inválida al usar "imprimir"?

print 2 ** 100 

esto da SyntaxError: invalid syntax

apuntando a la

2.

¿Por qué es esto? Estoy usando la versión 3.1

+1

¿Dónde encontró este ejemplo? ¿Está en un libro o en un sitio web? –

+0

Podría ser * Learning Python *. –

+0

jleedev es correcto; es OReilly Learning Python 3ª edición 2007. –

Respuesta

201

Eso se debe a que en Python 3, que han sustituido a la print comunicado con la funciónprint.

La sintaxis es ahora más o menos lo mismo que antes, pero requiere parens:

De los "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

Consulte esto para obtener más información: [¿Por qué print statement is not pythonic?] (http://stackoverflow.com/questions/1053849/why-print-statement-is-not-pythonic) – Will

12

Es necesario paréntesis:

print(2**100) 
2

La sintaxis se cambia en las nuevas versiones 3.x en lugar de lanzamientos 2.x. viejos: por ejemplo en Python 2.x puede escribir: print "Hola mundo nuevo" pero en la nueva versión 3.x es necesario utilizar la nueva sintaxis y escribir así: print ("Hola mundo nuevo")

verificación de la documentación: http://docs.python.org/3.3/library/functions.html?highlight=print#print

Cuestiones relacionadas