Comment puis-je trouver le reste de la division d'un nombre en Python?
Par exemple:
Si le nombre est 26 et le nombre divisé est 7, le reste de la division est 5.
(depuis 7 + 7 + 7 = 21 et 26-21 = 5.)
vous recherchez l'opérateur modulo:
a % b
par exemple:
26 % 7
Bien sûr, peut-être qu'ils voulaient que vous l'appliquiez vous-même, ce qui ne serait pas trop difficile non plus.
Le reste d'une division peut être découvert à l'aide de l'opérateur %
:
>>> 26%7
5
Si vous avez besoin du quotient et du modulo, utilisez la fonction divmod
intégrée:
>>> seconds= 137
>>> minutes, seconds= divmod(seconds, 60)
26% 7 (vous aurez le reste)
26/7 (vous obtiendrez un diviseur pouvant être une valeur flottante)
26 // 7 (vous obtiendrez un diviseur uniquement en valeur entière))
Si vous voulez éviter le modulo, vous pouvez également utiliser une combinaison des quatre opérations de base :)
26 - (26 // 7 * 7) = 5
Depuis Python 3.7, il existe une nouvelle fonction math.remainder()
:
from math import remainder
print(remainder(26,7))
Citer la documentation :
maths .reste (x, y)
Renvoyez le reste de x de style IEEE 754 avec x avec par rapport à y. Pour x fini et y non nul, c'est le différence x - n * y, où n est le nombre entier le plus proche de la valeur exacte du quotient x/y. Si x/y est exactement à mi-chemin entre deux nombres entiers consécutifs, le nombre entier pair le plus proche est utilisé pour n. Le reste r = reste (x, y) satisfait donc toujours abs (r) <= 0.5 * abs (y).
Les cas particuliers suivent IEEE 754: en particulier, reste (x, math.inf) est x pour tout x fini, et reste (x, 0) et reste (math.inf, x) déclenche ValueError pour tout x non-NaN. Si le résultat du reste opération est zéro, ce zéro aura le même signe que x.
Sur les plates-formes utilisant la virgule flottante binaire IEEE 754, il en résulte le résultat l'opération est toujours exactement représentable: aucune erreur d'arrondi n'est introduit.
Issue29962 décrit la raison d'être de la création de la nouvelle fonction.
Utilisez le% au lieu du/lorsque vous divisez. Cela retournera le reste pour vous. Donc dans ton cas
26 % 7 = 5
Modulo serait la bonne réponse, mais si vous le faites manuellement, cela devrait fonctionner.
num = input("Enter a number: ")
div = input("Enter a divisor: ")
while num >= div:
num -= div
print num
Nous pouvons résoudre ce problème en utilisant l'opérateur de module (%)
26% 7 = 5;
mais 26/7 = 3 car cela donnera un quotient mais% opérateur donnera le reste.
Si vous voulez obtenir le quotient et le reste dans une ligne de code (cas d'utilisation plus général), utilisez:
quotient, remainder = divmod(dividend, divisor)
#or
divmod(26, 7)
Si vous voulez le reste de votre problème de division, utilisez simplement les règles du reste, comme en mathématiques. Accordé, cela ne vous donnera pas de sortie décimale.
valone = 8
valtwo = 3
x = valone / valtwo
r = valone - (valtwo * x)
print "Answer: %s with a remainder of %s" % (x, r)
Si vous voulez utiliser une calculatrice, remplacez simplement valone = 8
.__ par valone = int(input("Value One"))
. Faites la même chose avec valtwo = 3
, mais différents vairables évidemment.