División en Python 2.7. y 3.3

¿Cómo puedo dividir dos números en Python 2.7 y obtener el resultado con decimales?

No entiendo por qué hay diferencia:

en Python 3:

>>> 20/15 1.3333333333333333 

en Python 2:

 >>> 20/15 1 

¿No es esto un módulo en realidad?

En Python 2.7, el operador / es una división de enteros si las entradas son enteros.

Si quieres una división flotante (que es algo que siempre prefiero), solo usa esta importación especial:

 from __future__ import division 

Véalo aquí:

 >>> 3 / 2 1 >>> from __future__ import division >>> 3 / 2 1.5 >>> 

La división entera se logra usando // , y módulo usando %

 >>> 3 % 2 1 >>> 3 // 1 3 >>> 

EDITAR

Como comentó user2357112 , esta importación debe realizarse antes que cualquier otra importación normal.

En Python 3, / es la división float

En Python 2, / es una división entera (asumiendo entradas int )

Tanto en 2 como en 3, // es división entera

(Para obtener la división de flotación en Python 2 se requiere que cualquiera de los operandos sea una flotación, como 20. o float(20) )

En Python 2.x, asegúrate de tener al menos un operando de tu división en float . Múltiples formas de lograr esto como los siguientes ejemplos:

 20. / 15 20 / float(15) 

“/” es una división entera en python 2, por lo que se redondeará a un número entero. Si desea que se devuelva un decimal, simplemente cambie el tipo de una de las entradas para flotar:

float(20)/15 #1.33333333