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.