Para hacer mis scripts simples en Python 2.7.10, ¿debería usar la función de impresión en lugar de la declaración para hacerlos a prueba en el futuro, en caso de que quiera probarlos en otra computadora con solo Python 3, o en un IDE en línea? ¿Cuál es la mejor manera que funciona mejor con ambas o las versiones más comunes de Python?
¿Cuáles son las diferencias? Este es mi primer lenguaje de programación que estoy aprendiendo, así que no estoy seguro. En este momento, tengo una variable fija que ingreso en '2' o '3' y luego una instrucción if en el código realiza una función de impresión y un método de concatenación diferentes para cualquiera de las versiones.
--Ejemplos--
Lo que estoy usando ahora:
print "Hello world!"
¿Pero debería usar esto en ambas versiones?
print ("Hello world!")
4 respuestas
Python 2.7.10 no tiene una función print()
, a menos que la importe. Agregar paréntesis no lo convierte en una función, solo especifica la agrupación. Si intenta imitar el paso de varios objetos, imprimirá un tuple
.
>>> print 1
1
>>> print (1)
1
>>> print 1,2
1 2
>>> print (1,2)
(1, 2)
Agregar paréntesis alrededor de lo que print
puede hacer que su programa sea un poco más robusto en términos de si se ejecuta con Python 2 o 3, pero cualquier cosa más que el uso básico producirá resultados inesperados. print (1,2)
en Python 3 producirá el mismo resultado que print 1,2
en Python 2. Si desea compatibilidad real, debe importar la función de impresión (que se puede hacer de forma segura en Python 2 o 3, pero solo hace una diferencia en Python 2):
>>> from __future__ import print_function
>>> print (1,2)
1 2
Si desea que su código de Python 2 se parezca más a Python 3, use una importación __future__
:
from __future__ import print_function
Luego use print()
como lo haría en Python 3.
Esto es mucho mejor que simplemente poner paréntesis en la declaración print
, porque:
x = 100
print("Results:", x)
Esto imprimirá ("Results:", 100)
en Python 2.x, pero si usa la importación o Python 3.x, imprimirá Results: 100
como se esperaba.
Sin embargo, si simplemente le preocupa la portabilidad, el programa 2to3
hace un muy buen trabajo al convertir las declaraciones print
en llamadas a funciones print()
.
También puede importar unicode_literals
, division
, etc. para hacer que otras partes de su código se parezcan más a Python 3. O simplemente puede continuar y cambiar a Python 3 ahora.
Si realmente desea admitir Python 2 y 3, debe usar la función print()
y aplicarla mediante una importación futura colocando esto en la parte superior de su archivo;
from __future__ import print_function
Ahora, en Python 2, usar print
como una declaración es un error de sintaxis.
>>> print ""
File "<stdin>", line 1
print ""
^
SyntaxError: invalid syntax
Puede acceder a la funcionalidad más avanzada de la función print()
, por ejemplo:
>>> print(*[1,2,3,4], sep=':', end='!')
1:2:3:4!
Cualquiera de esas líneas funcionará tanto en 2.7 como en 3.x
print ("Hello world!")
print("Hello world!")
Un ejemplo de una declaración de impresión solo 2.7 sería así:
print "Hello world!"
Probablemente debería seguir adelante y usar los paréntesis para probar su código en el futuro, y el formato PEP8 se ve así, con la advertencia a continuación:
print("Hello world!")
Sin espacio entre la función y el par abierto.
Esto anterior funcionará bien para cadenas simples, sin embargo, la solución real es importar la función de impresión del futuro de la siguiente manera:
from __future__ import print_function
Esto hará que la impresión sea una función real en Python 2, similar a como es en Python 3. Un lugar en el que simplemente te rodearán los paréntesis es cuando lo haces:
print 1,2
Vs.
print(1, 2)
Python 2 tratará a este último como una tupla, y verá un cambio en la salida de esta manera:
>>> print 1,2
1 2
>>> print(1,2)
(1, 2)
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.