Como eu poderia encontrar a divisão restante de um número em Python?
Por exemplo:
Se o número é 26 e o número dividido é 7, o restante da divisão é 5.
(desde 7 + 7 + 7 = 21 e 26-21 = 5).
Como eu poderia encontrar a divisão restante de um número em Python?
Por exemplo:
Se o número é 26 e o número dividido é 7, o restante da divisão é 5.
(desde 7 + 7 + 7 = 21 e 26-21 = 5).
Respostas:
você está procurando o operador módulo:
a % b
por exemplo:
26 % 7
Claro, talvez eles quisessem que você o implementasse, o que também não seria muito difícil.
-10 % 3 == 2
. No entanto, a/b*b + a%b == a
ainda é verdade, já que o python sempre arredonda para -Infinity, diferente de outras linguagens, que arredondam para 0, mas retornam -1.
%
ocorre porque o Python executa um módulo verdadeiro, que retorna valores no intervalo [0, divisor)
e combina bem com a divisão com piso (em direção ao infinito negativo). As linguagens C usam o %
operador para operações restantes, que retornam valores no intervalo (-divisor, divisor)
e emparelham bem com a divisão padrão (em direção a zero).
26% 7 (você receberá o restante)
26/7 (você obterá o divisor pode ser um valor flutuante)
26 // 7 (você receberá apenas o valor inteiro do divisor)
Se você deseja obter quociente e restante em uma linha de código (caso de uso mais geral), use:
quotient, remainder = divmod(dividend, divisor)
#or
divmod(26, 7)
No Python 3.7, há uma nova math.remainder()
função:
from math import remainder
print(remainder(26,7))
Resultado:
-2.0 # not 5
Observe que, como acima, não é o mesmo que %
.
Citando a documentação :
matemática. restante (x, y)
Retorne o restante do estilo IEEE 754 de x em relação a y. Para x finito e finito diferente de zero y, essa é a diferença x - n * y, em que n é o número inteiro mais próximo do valor exato do quociente x / y. Se x / y estiver exatamente na metade do caminho entre dois números inteiros consecutivos, o número par mais próximo será usado para n. O restante r = restante (x, y), portanto, sempre satisfaz abs (r) <= 0,5 * abs (y).
Casos especiais seguem o IEEE 754: em particular, o restante (x, math.inf) é x para qualquer x finito e o restante (x, 0) e o restante (math.inf, x) aumentam o ValueError para qualquer NaN x. Se o resultado da operação restante for zero, esse zero terá o mesmo sinal que x.
Nas plataformas que utilizam o ponto flutuante binário IEEE 754, o resultado dessa operação é sempre exatamente representável: nenhum erro de arredondamento é introduzido.
O Issue29962 descreve a justificativa para criar a nova função.
Use% em vez de / quando você dividir. Isso retornará o restante para você. Então no seu caso
26 % 7 = 5
Módulo seria a resposta correta, mas se você estiver fazendo isso manualmente, isso deve funcionar.
num = input("Enter a number: ")
div = input("Enter a divisor: ")
while num >= div:
num -= div
print num
Podemos resolver isso usando o operador de módulo (%)
26% 7 = 5;
mas 26/7 = 3, porque dará o quociente, mas o operador% dará o restante.
Você pode encontrar o restante usando o operador modulo
a=14
b=10
print(a%b)
Ele imprimirá 4
Se você quiser o restante do seu problema de divisão, use as regras restantes, como na matemática. Concedido isso não fornecerá uma saída decimal.
valone = 8
valtwo = 3
x = valone / valtwo
r = valone - (valtwo * x)
print "Answer: %s with a remainder of %s" % (x, r)
Se você quiser fazer isso em um formato de calculadora, basta substituir valone = 8
por valone = int(input("Value One"))
. Faça o mesmo com valtwo = 3
, mas diferentes variáveis obviamente.
valone/valtwo
para int. caso contrário, resultará em um número flutuante.
você pode definir uma função e chamá-la de restante com 2 valores como rem (número1, número2) que retorna número1% número2, em seguida, criar um tempo e configurá-lo como true, em seguida, imprimir duas entradas para sua função segurando os números 1 e 2 e imprimir (rem (número1, número2)