should - what''s better python 2 or 3
División en Python 2.7. y 3.3 (4)
Esta pregunta ya tiene una respuesta aquí:
- Python division 12 respuestas
¿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?
"/" 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
En Python 2.x, asegúrese de tener al menos un operando de su división en float . Múltiples maneras en que puede lograr esto como los siguientes ejemplos:
20. / 15
20 / float(15)
En Python 3, / es la división de flotación
En Python 2, / es una división entera (suponiendo entradas int )
En ambos, 2 y 3, // es una división entera
(Para obtener la división de flotación en Python 2, se requiere que cualquiera de los operandos sea un flotante, ya sea como 20. o float(20) )
En python 2.7, el operador / es una división entera si las entradas son números enteros.
Si quieres la división de flotación (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 de enteros se logra utilizando // 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.