División en Python a int
En Python 3.x, el operador de barra (“/”) hace la división verdadera para todos los tipos, incluyendo los enteros, y por lo tanto, por ejemplo, 3/2==1.5[1][2]. El resultado es de tipo punto flotante incluso si ambas entradas son enteras: 4 / 2 da como resultado 2.0.
En Python 3.x y en la última versión 2.x, la división por el suelo tanto para argumentos enteros como para argumentos de punto flotante se consigue utilizando el operador de doble barra (“//”). Para los resultados negativos, esto es diferente a la división de enteros en el lenguaje C ya que -3 // 2 == -2 en Python mientras que -3 / 2 == -1 en C: C redondea el resultado negativo hacia cero mientras que Python hacia el infinito negativo.
Para Python 2.x, la división de dos enteros o longs utilizando el operador de barra (“/”) utiliza la división de piso (aplicando la función de piso después de la división) y resulta en un entero o long. Así, 5 / 2 == 2 y -3 / 2 == -2. El uso de “/” para hacer la división de esta manera es obsoleto; si quieres la división de piso, utiliza “//” (disponible en Python 2.2 y posterior). Dividir por o entre un número de punto flotante hará que Python utilice la división verdadera. Así, para asegurar la división verdadera en Python 2.x: x=3; y=2; float(x)/y == 1.5.
División decimal en Python
El operador de división en el lugar x /= y de Python divide dos objetos en el lugar calculando x / y y asignando el resultado al nombre de la variable x del primer operando. Configura la división en el lugar para tu propia clase sobrescribiendo el método mágico “dunder” __truediv__(self, other) en la definición de tu clase.
Para utilizar el operador de división in-place /= en objetos personalizados, necesitas definir el método __truediv__() (“método dunder”, “método mágico”) que toma dos argumentos self y other, actualiza el primer argumento self con el resultado de la división, y devuelve el objeto actualizado.
Los operadores de asignación en el lugar (también llamados operadores de asignación compuesta) realizan una operación en el lugar sobre una variable proporcionada como primer operando. Sobrescriben el valor de la variable del primer operando con el resultado de la operación cuando se realiza el operador sin asignación. Por ejemplo, x += 3 es lo mismo que x = x + 3 de calcular primero el resultado de x +3 y luego asignarlo a la variable x.
OperatorNameShort ExampleEquivalent Long Example=En el lugar Assignmentx = 3+=En el lugar Additionx += 3x = x + 3-=En el lugar Subtractionx -= 3x = x – 3*=En el lugar Multiplicationx *= 3x = x * 3/=En el lugar Divisionx /= 3x = x / 3%=En el lugar Modulox %= 3x = x % 3//=En el lugar lugar División de enterosx //= 3x = x // 3**=En lugar Potenciax **= 3x = x ** 3&=En lugar Andx a nivel de bits &= 3x = x & 3|=En lugar Orx a nivel de bits |= 3x = x | 3^=En lugar XORx a nivel de bits ^= 3x = x ^ 3>>=En lugar Desplazamiento a nivel de bits a la derechax >>= 3x = x >> 3<<=En lugar Desplazamiento a nivel de bits a la izquierdax <<= 5x = x << 5
Operador % de Python
En Python 3, hicieron que el operador / hiciera una división de punto flotante, y añadieron el operador // para hacer la división de enteros (es decir, cociente sin resto); mientras que en Python 2, el operador / era simplemente una división de enteros, a menos que uno de los operandos fuera ya un número de punto flotante.
Así que, si y cuando sepas que quieres el suelo, utiliza siempre //, que lo garantiza. Si y cuando sabes que no quieres piso, pon un float() alrededor del otro operando y usa /. ¡Cualquier otra combinación, y estás a merced de la versión, las importaciones y las banderas!-)
Para complementar la respuesta de Alex, añadiría que a partir de Python 2.2.0a2, desde __future__ import division es una alternativa conveniente a usar muchos float(…)/…. Todas las divisiones realizan divisiones con float, excepto las que tienen //. Esto funciona con todas las versiones a partir de la 2.2.0a2.
Resumen de la división Python
Contenidos División en Python – División de enteros y división de flotantes La operación de división es una operación aritmética en la que trataremos de calcular cuánto tenemos que dividir el dividendo en partes iguales, para que cada uno de los divisores obtenga una cantidad igual. En la programación en Python, se puede realizar la división de dos maneras. La primera es la división de enteros y la segunda es la división de flotantes. En este tutorial, aprenderemos a realizar operaciones de división de enteros y división de flotantes con programas de Python de ejemplo. División de enteros en Python La división de enteros significa que la salida de la división será un número entero. La parte decimal se ignora. En otras palabras, sólo obtendrás la parte del cociente. Para realizar una división entera en Python, puedes utilizar el operador //. El operador // acepta dos argumentos y realiza la división de enteros. Un ejemplo sencillo sería resultado = a//b. En el siguiente programa de ejemplo, tomaremos dos variables y realizaremos la división entera utilizando el operador //. Programa Python a, b = 7, 3
print(resultado) Ejecutar Salida 2 También puedes proporcionar valores de punto flotante como operandos para el operador //. En el siguiente ejemplo, tomaremos dos valores flotantes y calcularemos la división entera. Programa Python a, b = 7.2, 3.1