2009-05-05 13 views
232

¿Por qué recibo un error de sintaxis al imprimir una cadena en Python 3?Error de sintaxis en la impresión con Python 3

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

sugerencia: para código de compatibilidad en Python 2.7+ pon esto en el principio del módulo: 'from __future__ import print_function' –

+0

... print_function de importación no parece funcionar, ¿necesitas cambiar algo en las instrucciones de impresión? ? o debería la importación hacerlo? – RMiranda

+5

Para el registro, este caso recibirá un mensaje de error personalizado en Python 3.4.2: https://stackoverflow.com/questions/25445439/what-does-syntaxerror-missing-parentheses-in-call-to-print- mean-in-python/ – ncoghlan

Respuesta

314

En Python 3, printbecame a function. Esto significa que es necesario incluir entre paréntesis ahora como se menciona a continuación:

print("Hello World") 
18

En Python 3.0, print es una función regular que requiere():

print("Hello world") 
15

Parece que estás usando Python 3. En Python 3, la impresión se ha cambiado a un método en vez de una declaración. Prueba esto:

print("hello World") 
16

En Python 3, es print("something"), no print "something".

27

Debido a que en Python 3, print statement ha sido reemplazado con un print() function, con argumentos clave para reemplazar la mayor parte de la sintaxis especial de la declaración de impresión usado. Así que hay que escribir como

print("Hello World") 

Pero si se escribe esto en un programa y alguien usando Python 2.x trata de correr, se obtendrá un error. Para evitar esto, es una buena práctica para importar la función de impresión función

from __future__ import print_function 

Ahora código funciona tanto en 2.x 3.x &

comprobar a continuación ejemplos también para familiarizarse con la impresión() .

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

Fuente: What’s New In Python 3.0?

5

En Python 2.X print es una keyword, mientras que en Python 3.x print convierte en una función, por lo que la forma correcta de hacerlo es print(something).

Puede obtener la lista de palabras clave para cada versión ejecutando el siguiente:

>>> import keyword 
>>> keyword.kwlist 
7

usted tiene que utilizar el soporte de impresión con print("Hello World")

8

En Python 3, debe hacer print('some code'). Esto se debe a que en Python 3 se ha convertido en una función.Si debe, puede usar su código Python 2 y convertirlo a código Python 3 usando 2to3 - es un gran programa incorporado que viene con Python. Para más información, vea Python 2to3 - Convert your Python 2 to Python 3 automatically!.

Cuestiones relacionadas