libreria - ¿Por qué el uso de__future__ import print_function interrumpe la impresión al estilo Python2?
libreria future python (1)
Soy nuevo en programación con python, y estoy tratando de imprimir con un separador y finalizar, pero todavía me da un error de sintaxis.
Estoy usando python 2.7.
Aquí está mi código:
import sys, os, time
from __future__ import print_function
for x in range(0,10):
print x, sep='' '', end=''''
time.sleep(1)
Y aquí está el error:
from __future__ import print_function
import sys, os, time
for x in range(0,10):
print(x, sep='' '', end='''') # No need for sep here, but okay :)
time.sleep(1)
En primer lugar,
from __future__ import print_function
debe ser la primera línea de código en su script (aparte de algunas excepciones mencionadas a continuación).
En segundo lugar, como han dicho otras respuestas, debe usar
print
como una función ahora.
Ese es el objetivo de
from __future__ import print_function
;
para llevar la
función de
print
de Python 3 a Python 2.6+.
from __future__ import print_function import sys, os, time for x in range(0,10): print(x, sep='' '', end='''') # No need for sep here, but okay :) time.sleep(1)
__future__
declaraciones
__future__
deben estar cerca de la parte superior del archivo porque cambian cosas fundamentales sobre el lenguaje, por lo que el compilador necesita saber sobre ellas desde el principio.
De
la documentación
:
Una declaración futura se reconoce y trata especialmente en el momento de la compilación: los cambios en la semántica de las construcciones centrales a menudo se implementan mediante la generación de código diferente. Incluso puede darse el caso de que una nueva característica introduzca una nueva sintaxis incompatible (como una nueva palabra reservada), en cuyo caso el compilador puede necesitar analizar el módulo de manera diferente. Tales decisiones no pueden ser postergadas hasta el tiempo de ejecución.
La documentación también menciona que las únicas cosas que pueden preceder a una declaración
__future__
son la cadena de documentación del módulo, comentarios, líneas en blanco y otras declaraciones futuras.