Python 2 Vs Python 3
Python 2 Vs Python 3
Python 2 vs Python 3
¿Qué ha cambiado?
Si queríamos obtener el resultado como un decimal, teníamos que agregar un .0 al número o castearlo
a float.
1 >>> a = 3
2 >>> float (a) / 2
3 1.5
4 >>> 10.0 / 3
5 3.33333333
En Python 3 se ha superado esto: ahora la división entre enteros siempre retornará el resultado
correcto como un decimal.
1 >>> 3 / 2
2 1.5
3 >>> 10 / 3
4 3.33333333
Recuerda que existe la división entera, que nos garantiza obtener siempre un entero truncado
de la división realizada.
Python 2 vs Python 3 1
1 >>> 6 // 7
2 0
Esta diferencia en la división entera es una de las que produce mayores incompatibilidades al portar
aplicaciones escritas en Python 2 a Python 3.
La función print()
En Python 2, para imprimir, lo hacíamos utilizando print como una declaración o state-
ment:
1 >>> print "La respuesta es" , 2*2
2 La respuesta es 4
Puede parecer sencillo, pero ojo, en algunos casos puede ser un poco más complejo. Veamos el
siguiente caso en Python 2:
1 >>> x = 2
2 >>> y = 3
3 >>> print(x,y)
4 (2,3)
5 >>> print x,y
6 2 3
Python 2 vs Python 3 2
input()
¿Recuerdas cómo recibir una entrada desde el usuario de tu programa? Utilizábamos la función
input(), que recibía de forma literal la entrada y la evaluaba en función de su tipo. Esto hacía que
si un usuario tenía que escribir un texto, necesariamente tenía que hacerlo utilizando comillas, o se
producía un error.
1 >>> a = input()
2 hola
3 Traceback (most recent call last ) :
4 File "<stdin>", line 1, in <module>
5 File "<string>", line 1, in <module>
6 NameError: name ’hola’ is not defined
7 >>> a = input()
8 "hola"
9 >>> print a
10 hola
Para evitar estos problemas y otros, utilizábamos otra función: raw_input(), la que trabajaba
toda entrada como texto.
1 >>> a = raw_input()
2 hola
3 >>> print a
4 hola
Python 2 vs Python 3 3