Trouver le reste de division d'un nombre
Comment pourrais-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, alors le reste de la division est 5.
(depuis 7+7+7=21 et 26-21=5.)
10 réponses
Vous recherchez l'opérateur modulo:
a % b
Par exemple:
26 % 7
Bien sûr, peut-être qu'ils voulaient que vous l'implémentiez 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 à la fois du quotient et du modulo, il y a la fonction intégrée divmod
:
>>> seconds= 137
>>> minutes, seconds= divmod(seconds, 60)
26% 7 (vous obtiendrez le reste)
26 / 7 (vous obtiendrez le diviseur peut être une valeur flottante)
26 // 7 (vous obtiendrez le diviseur seulement la valeur entière))
Si vous voulez éviter de modulo, vous pouvez également utiliser une combinaison des quatre opérations de base :)
26 - (26 // 7 * 7) = 5
De python 3.7, il y a une nouvelle fonction math.remainder()
:
from math import remainder
print(remainder(26,7))
Mathématiques.reste(x, y)
Renvoie le reste de style IEEE 754 de x avec pour X fini et y fini non nul, c'est le différence x-n * y, où n est l'entier le plus proche de la valeur exacte du quotient x / y. Si x / y est exactement à mi-chemin entre deux entiers consécutifs, l'entier pair le plus proche est utilisé pour N. reste r = reste (x, y) satisfait donc toujours abs(r)
Des cas particuliers suivent IEEE 754: en particulier, remainder(x, math.inf) est x pour tout x fini, et reste (x, 0) et reste (math.inf, x) raise ValueError pour tout non-Nan X. Si le résultat du reste l'opération est zéro, ce Zéro aura le même signe que X.
Sur les plates-formes utilisant IEEE 754 binaire à virgule flottante, le résultat de ceci l'opération est toujours exactement représentable: aucun erreur d'arrondi est présenté.
Issue29962 décrit la logique de la création de la nouvelle fonction.
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
Utilisez le % au lieu du / Lorsque vous divisez. Ce sera de retour le reste pour vous. Donc, dans votre cas
26 % 7 = 5
Nous pouvons résoudre cela en utilisant l'opérateur module (%)
26 % 7 = 5;
Mais 26 / 7 = 3 car il donnera quotient mais l'opérateur % donnera le reste.
Si vous voulez le reste de votre problème de division, utilisez simplement les règles de reste réelles, tout comme en mathématiques. Certes, cela ne vous donnera pas une 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 faire cela dans un format de calculatrice, remplacez simplement valone = 8
avec valone = int(input("Value One"))
. Faites de même avec valtwo = 3
, mais différents vairables évidemment.