2012-07-27 17 views
5

Tengo un error extraño al usar sep, file, (etc.) argumentos de la función print() de python. Traté de buscarlo en Google, dag around stackoverflow, y leí python's documentation, pero no se me ocurrió nada. He adjuntado un fragmento simple, agradecería cualquier ayuda.Python 2.7 print() error

# python 
Python 2.7.2 (default, Aug 19 2011, 20:41:43) [GCC] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> print("blah"*10, sep=" | ") 
    File "<stdin>", line 1 
    print("blah"*10, sep=" | ") 
         ^
SyntaxError: invalid syntax 

Respuesta

11

Probar:

from __future__ import print_function 

primera

+0

gracias. resolvió el problema. Entonces, ¿cómo es que la documentación de Python (ver mi publicación de actualización) especifica lo contrario? y, ¿sabe dónde puedo encontrar la documentación relevante para el uso nativo de la función 'print()'? – MrRoth

+2

@MrRoth: Lea la nota en su enlace;) – phant0m

+1

@MrRoth Debe aceptar esto como la respuesta. – Ash

6

En la serie 2.x, print es una declaración, mientras que en 3.x es una función. Si desea que en 2.6+ tenga print como una función, use from __future__ import print_function como la primera instrucción de importación.

esperar código para romper aunque

0

La función de impresión es específico de Python 3. Tiene dos soluciones aquí:

Escribir

from __future__ import print_function 

para que pueda usarlo como se especifica por cdarke.

O utiliza la impresión como una declaración simple como debería ser con las versiones anteriores de Python (print "Hello World").

+0

El problema con el uso de la antigua declaración 'print' es que el separador no se puede cambiar, a diferencia de la función' print() 'actual. – cdarke