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, le reste de la division est 5.
(puisque 7 + 7 + 7 = 21 et 26-21 = 5.)
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, le reste de la division est 5.
(puisque 7 + 7 + 7 = 21 et 26-21 = 5.)
Réponses:
vous recherchez l'opérateur modulo:
a % b
par exemple:
26 % 7
Bien sûr, ils voulaient peut-être que vous l'implémentiez vous-même, ce qui ne serait pas trop difficile non plus.
-10 % 3 == 2
. Cependant, c'est a/b*b + a%b == a
toujours vrai, puisque python arrondit toujours vers -Infinity, contrairement à certains autres langages, qui arrondissent vers 0 mais renverraient -1.
%
exécute un vrai module, qui renvoie des valeurs sur la plage [0, divisor)
et se marie bien avec une division par étage (vers l'infini négatif). Les langages C utilisent l' %
opérateur pour les opérations de reste qui renvoie des valeurs sur la plage (-divisor, divisor)
et se marie bien avec la division standard (vers zéro).
26% 7 (vous obtiendrez le reste)
26/7 (vous obtiendrez le diviseur peut être une valeur flottante)
26 // 7 (vous obtiendrez un diviseur uniquement une valeur entière))
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)
Depuis Python 3.7, il y a une nouvelle math.remainder()
fonction:
from math import remainder
print(remainder(26,7))
Production:
-2.0 # not 5
Notez, comme ci-dessus, ce n'est pas la même chose que %
.
Citant la documentation :
math. reste (x, y)
Renvoie le reste de x de style IEEE 754 par rapport à y. Pour x fini et y non nul, il s'agit de la 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. Le reste r = reste (x, y) satisfait donc toujours abs (r) <= 0.5 * abs (y).
Les cas spéciaux suivent IEEE 754: en particulier, le reste (x, math.inf) est x pour tout x fini, et le reste (x, 0) et le reste (math.inf, x) lèvent ValueError pour tout x non-NaN. Si le résultat de l'opération de reste est zéro, ce zéro aura le même signe que x.
Sur les plates-formes utilisant la virgule flottante binaire IEEE 754, le résultat de cette opération est toujours exactement représentable: aucune erreur d'arrondi n'est introduite.
Le numéro 29962 décrit la justification de la création de la nouvelle fonction.
Utilisez le% au lieu du / lorsque vous divisez. Cela vous rendra le reste. 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 cela en utilisant l'opérateur de module (%)
26% 7 = 5;
mais 26/7 = 3 car il donnera le quotient mais l'opérateur% donnera le reste.
Vous pouvez trouver le reste en utilisant l'opérateur modulo Exemple
a=14
b=10
print(a%b)
Il imprimera 4
Si vous voulez le reste de votre problème de division, utilisez simplement les règles du reste, 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
par valone = int(input("Value One"))
. Faites de même avec valtwo = 3
, mais des vairables différents évidemment.
valone/valtwo
en int. sinon, il en résultera un nombre flottant.
vous pouvez définir une fonction et l'appeler reste avec 2 valeurs comme rem (number1, number2) qui retourne number1% number2 puis créer un while et le définir sur true puis imprimer deux entrées pour votre fonction en tenant les numéros 1 et 2 puis print (rem (nombre1, nombre2)