Come potrei fare per trovare il resto della divisione di un numero in Python?
Ad esempio:
se il numero è 26 e il numero diviso è 7, il resto della divisione è 5.
(poiché 7 + 7 + 7 = 21 e 26-21 = 5).
Come potrei fare per trovare il resto della divisione di un numero in Python?
Ad esempio:
se il numero è 26 e il numero diviso è 7, il resto della divisione è 5.
(poiché 7 + 7 + 7 = 21 e 26-21 = 5).
Risposte:
stai cercando l'operatore modulo:
a % b
per esempio:
26 % 7
Certo, forse volevano che tu lo implementassi da solo, il che non sarebbe neanche troppo difficile.
-10 % 3 == 2
. Comunque è a/b*b + a%b == a
ancora vero, dato che python arrotonda sempre verso -Infinito, a differenza di altre lingue, che si arrotondano verso 0 ma restituiscono -1.
%
esegue un vero modulo, che restituisce valori sull'intervallo [0, divisor)
e si accoppia bene con la divisione floored (verso l'infinito negativo). I linguaggi C usano l' %
operatore per le operazioni rimanenti che restituiscono valori nell'intervallo (-divisor, divisor)
e si accoppiano bene con la divisione standard (verso zero).
26% 7 (otterrai resto)
26/7 (otterrai un divisore può essere un valore float)
26 // 7 (otterrai solo il valore intero divisore))
Se si desidera ottenere il quoziente e il resto in una riga di codice (caso d'uso più generale), utilizzare:
quotient, remainder = divmod(dividend, divisor)
#or
divmod(26, 7)
Da Python 3.7, c'è una nuova math.remainder()
funzione:
from math import remainder
print(remainder(26,7))
Produzione:
-2.0 # not 5
Nota, come sopra, non è lo stesso di %
.
Citando la documentazione :
matematica. resto (x, y)
Restituisce il resto in stile IEEE 754 di x rispetto a y. Per x finito e diverso da zero y, questa è la differenza x - n * y, dove n è il numero intero più vicino al valore esatto del quoziente x / y. Se x / y è esattamente a metà strada tra due numeri interi consecutivi, viene utilizzato il numero intero pari più vicino per n. Il resto r = resto (x, y) soddisfa quindi sempre abs (r) <= 0,5 * abs (y).
Casi speciali seguono IEEE 754: in particolare, resto (x, math.inf) è x per qualsiasi x finito, e resto (x, 0) e resto (math.inf, x) aumentano ValueError per qualsiasi non-NaN x. Se il risultato dell'operazione rimanente è zero, quello zero avrà lo stesso segno di x.
Sulle piattaforme che utilizzano IEEE 754 in virgola mobile binaria, il risultato di questa operazione è sempre esattamente rappresentabile: non viene introdotto alcun errore di arrotondamento.
Il numero29962 descrive la logica per la creazione della nuova funzione.
Usa% invece di / quando dividi. Questo restituirà il resto per te. Quindi nel tuo caso
26 % 7 = 5
Modulo sarebbe la risposta corretta, ma se lo fai manualmente dovrebbe funzionare.
num = input("Enter a number: ")
div = input("Enter a divisor: ")
while num >= div:
num -= div
print num
Possiamo risolverlo usando l'operatore modulo (%)
26% 7 = 5;
ma 26/7 = 3 perché fornirà il quoziente ma% operatore darà il resto.
Puoi trovare il resto usando l'operatore modulo Esempio
a=14
b=10
print(a%b)
Stampa 4
Se vuoi il resto del tuo problema di divisione, usa le regole del resto, proprio come in matematica. Concesso questo non ti darà un risultato decimale.
valone = 8
valtwo = 3
x = valone / valtwo
r = valone - (valtwo * x)
print "Answer: %s with a remainder of %s" % (x, r)
Se vuoi farlo in un formato calcolatrice, basta sostituirlo valone = 8
con valone = int(input("Value One"))
. Fai lo stesso con valtwo = 3
, ma diversi vendibili ovviamente.
valone/valtwo
su int. altrimenti si otterrà un numero float.
puoi definire una funzione e chiamarla resto con 2 valori come rem (numero1, numero2) che restituisce numero1% numero2, quindi crea un po 'e impostalo su vero, quindi stampa due ingressi per la tua funzione tenendo i numeri 1 e 2 quindi stampa (rem (numero1, numero2)