what should developing better best python python-2.7 python-3.3 division

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í:

¿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.