Por qué aprender a programar Python
Razones, características y ventajas de por qué debes de aprender Python este año. Entra ahora y conoce las ventajas de este magnífico...
Conoce las principales diferencias entre Python 2 y Python 3 y decídete que versión es la que hay que usar a día de hoy.
Tabla de contenidos
Desde finales de 2008, cuando Python sacó la versión 3.0, coexisten dos versiones de este lenguaje de programación. La versión 2.x y la versión 3.x, esto nos plantea muchas dudas sobre qué versión debemos utilizar , en este artículo veremos como está el panorama respecto a estas dos versiones.
Hasta 2010 se sacaban versiones paralelas de las dos versiones que compartían mejoras, pero desde la 2.7 lanzada en 2010, las únicas actualizaciones han venido para la versión 3.x. Cierto es que han ido arreglando ciertos bugs en la version 2.7, pero sin mejoras o grandes cambios en dicha versión. La realidad es que la única versión que está en desarrollo es la 3.x , actualmente en la versión 3.6.
La versión 3.0, nos trajo muchos cambios en Python respecto a la versión 2 . Se mejoró el soporte Unicode además de una separación bytes/Unicode con mayor lógica. Otros cambios en el lenguaje han sido print
y exec
que han sido ajustadas para ser más legibles y coherentes, siguiendo la filosofía de Python, ser un lenguaje limpio y legible.
Debido a estos cambios, se ha producido que ambas versiones no sean compatibles entre ellas y por ello, gran cantidad de librerías y módulos desarrollados para la versión 2.x no pueden ser usadas (de momento) en 3.x, aunque a día de hoy las más importantes están ya disponibles para las dos versiones. En esta web http://python3wos.appspot.com/ puedes ver cuales están disponibles y cuales no, como puedes ver más de un 90% están ya disponibles para la última versión de Python y las que no, están siendo migradas poco a poco.
Lo ideal es aprender o empezar a trabajar con la versión 3.x que es la versión que se va a seguir desarrollando y dando soporte, el único motivo para empezar un proyecto con la versión 2.x, ya la hemos comentado, existe un soporte de bibliotecas ligeramente menor para la versión 3.x. Pero si tu proyecto se puede hacer con la última versión de Python igual que con la versión 2.x, deberías de utilizar l a versión 3.x, que es el presente y futuro, no dudes en ello .
Si necesitamos más razones, Python 2.x es un lenguaje "antiguo" con mucho fallos, y se necesita una versión principal para resolverlos, cosa que no pasará. No te alarmes si estás usando la versión 2.x, algunas de las mejoras de seguridad menos dramáticas en 3.0 y 3.1 se han portado a la 2.6 y 2.7, respectivamente.
Ahora vamos a ver algunas diferencias prácticas en la sintaxis y estructura que hay entre las dos versiones.
En python2:
print "hola mundo"
En python3:
print ("Hola mundo")
En python 2 al dividir enteros, siempre el resultado era un entero, en python3 el resultado es un número real.
En python2:
>>> 4/3
1
En python3:
>>> 3/2
1.5
>>> num = 3/2
>>> type(num)
<class 'float'>
>>> num = 4/2
>>> type(num)
<class 'float'>
En python2 existe dos tipos diferenciados de cadenas: str (ascii) y unicode, en python 3 todas las cadenas son unicodes.
En python2:
>>> cad = "piña"
>>> cad
'pi\xc3\xb1a'
En python3:
>>> cad = "piña"
>>> cad
'piña'
En python2 teníamos dos funciones parecidas: range que generaba una lista de números, y xrange que era una función que devolvía un objeto de tipo xrange. La diferencia entre ambas era que utilizar esta última era mucho más eficiente. E python3 sólo tenemos range que ha pasado a ser un tipo de datos.
En python2:
>>> range(1,10)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> xrange(1,10)
xrange(1, 10)
>>> type(xrange(1,10))
<type 'xrange'>
En pyton3:
>>> range(1,10)
range(1, 10)
>>> type(range(1,10))
<class 'range'>
En python 2 habían dos funciones para ingresar datos por un teclado raw_input() en que lo ingresado se trataba como una cadena de texto e input() en lo que se ingresaba se evaluaba y se trataba por su tipo. En python 3, se eliminó el input() de python 2 quedando el raw_input() como el nuevo input(). O sea el input() de python 3 siempre devuelve una cadena de texto.
En python2:
>>> cad=raw_input()
123
>>> type(cad)
<type 'str'>
>>> num=input()
123
>>> type(num)
<type 'int'>
En python3:
>>> num=input()
123
>>> type(num)
<class 'str'>
Python 3 nos indica un error cuando intentamos comparar tipos de datos diferentes.
En python2:
>>> [1,2] > "hola"
False
En python3:
>>> [1,2] > "hola"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: list() > str()
Como ves hay suficientes motivos para empezar aprender Python 3 y crear tus proyectos con esta versión, y dejar que la versión 2 vaya desapareciendo poco a poco. El futuro y presente de Python es la versión 3.
También te puede interesar
Razones, características y ventajas de por qué debes de aprender Python este año. Entra ahora y conoce las ventajas de este magnífico...
Tu pasaporte a sabelotodo de Python. Desde las bases hasta la creación de tu primer programa, este curso...