¿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
¿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
En Python 3, print
became a function. Esto significa que es necesario incluir entre paréntesis ahora como se menciona a continuación:
print("Hello World")
Parece que estás usando Python 3.0, en la que print has turned into a callable function en lugar de una declaración.
print('Hello world!')
En Python 3.0, print
es una función regular que requiere():
print("Hello world")
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")
En Python 3, es print("something")
, no print "something"
.
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?
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
usted tiene que utilizar el soporte de impresión con print("Hello World")
2to3 es un programa Python que lee fuente de Python 2.x código y aplica una serie de fijadores para transformarlo en código Python 3.x válida
información más detallada se puede encontrar aquí:
Python Documentation: Automated Python 2 to 3 code translation
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!.
sugerencia: para código de compatibilidad en Python 2.7+ pon esto en el principio del módulo: 'from __future__ import print_function' –
... 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
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