¿Cómo podría encontrar el resto de la división de un número en Python?
Por ejemplo:
si el número es 26 y el número dividido es 7, el resto de la división es 5.
(ya que 7 + 7 + 7 = 21 y 26-21 = 5).
¿Cómo podría encontrar el resto de la división de un número en Python?
Por ejemplo:
si el número es 26 y el número dividido es 7, el resto de la división es 5.
(ya que 7 + 7 + 7 = 21 y 26-21 = 5).
Respuestas:
Está buscando el operador de módulo:
a % b
por ejemplo:
26 % 7
Por supuesto, tal vez querían que lo implementaras tú mismo, lo que tampoco sería demasiado difícil.
-10 % 3 == 2
. Sin embargo, a/b*b + a%b == a
sigue siendo cierto, ya que python siempre se redondea hacia -Infinity, a diferencia de otros lenguajes, que se redondea hacia 0 pero devolvería -1.
%
realiza un verdadero módulo, que devuelve valores en el rango [0, divisor)
y se combina bien con la división en pisos (hacia el infinito negativo). Los lenguajes C utilizan el %
operador para operaciones restantes que devuelve valores en el rango (-divisor, divisor)
y se empareja bien con la división estándar (hacia cero).
26% 7 (obtendrá el resto)
26/7 (obtendrá divisor puede ser valor flotante)
26 // 7 (obtendrá un valor entero de divisor solamente)
Si desea obtener el cociente y el resto en una línea de código (caso de uso más general), use:
quotient, remainder = divmod(dividend, divisor)
#or
divmod(26, 7)
Desde Python 3.7, hay una nueva math.remainder()
función:
from math import remainder
print(remainder(26,7))
Salida:
-2.0 # not 5
Tenga en cuenta que, como se indicó anteriormente, no es lo mismo que %
.
Citando la documentación :
matemáticas. resto (x, y)
Devuelva el resto del estilo IEEE 754 de x con respecto a y. Para x finito y finito distinto de cero, esta es la diferencia x - n * y, donde n es el entero más cercano al valor exacto del cociente x / y. Si x / y está exactamente a medio camino entre dos enteros consecutivos, se usa el entero par más cercano para n. El resto r = resto (x, y) siempre satisface abs (r) <= 0.5 * abs (y).
Los casos especiales siguen a IEEE 754: en particular, el resto (x, math.inf) es x para cualquier x finito, y el resto (x, 0) y el resto (math.inf, x) aumentan ValueError para cualquier no NaN x. Si el resultado de la operación restante es cero, ese cero tendrá el mismo signo que x.
En plataformas que usan punto flotante binario IEEE 754, el resultado de esta operación siempre es exactamente representable: no se introduce ningún error de redondeo.
Issue29962 describe las razones para crear la nueva función.
Use el% en lugar de / cuando divida. Esto le devolverá el resto. Entonces en tu caso
26 % 7 = 5
El módulo sería la respuesta correcta, pero si lo está haciendo manualmente, esto debería funcionar.
num = input("Enter a number: ")
div = input("Enter a divisor: ")
while num >= div:
num -= div
print num
Podemos resolver esto usando el operador de módulo (%)
26% 7 = 5;
pero 26/7 = 3 porque dará cociente pero% operador dará resto.
Puede encontrar el resto utilizando el operador de módulo Ejemplo
a=14
b=10
print(a%b)
Imprimirá 4
Si desea el resto de su problema de división, simplemente use las reglas del resto real, al igual que en matemáticas. De acuerdo, esto no te dará una salida decimal.
valone = 8
valtwo = 3
x = valone / valtwo
r = valone - (valtwo * x)
print "Answer: %s with a remainder of %s" % (x, r)
Si desea hacer esto en formato de calculadora, simplemente sustitúyalo valone = 8
por valone = int(input("Value One"))
. Haz lo mismo con valtwo = 3
, pero obviamente diferentes objetos de valor.
valone/valtwo
a int. de lo contrario, dará como resultado un número flotante.
puede definir una función y llamarla resto con 2 valores como rem (número1, número2) que devuelve número1% número2, luego cree un tiempo y configúrelo como verdadero, luego imprima dos entradas para su función con los números 1 y 2 y luego imprima (rem (número1, número2)