Depuis Python 3.7, il existe une nouvelle fonction math.remainder()
fonction :
from math import remainder
print(remainder(26,7))
Sortie :
-2.0 # not 5
Note, comme ci-dessus, ce n'est pas la même chose comme %
.
Citant le la documentation :
mathématiques. reste (x, y)
Retourne le reste de x dans le style IEEE 754 avec par rapport à y. Pour un x fini et un y fini 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. du quotient x / y. Si x / y est exactement à mi-chemin entre deux entiers 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 particuliers sont conformes à la norme IEEE 754 : en particulier, remainder(x, math.inf) est x pour tout x fini, et remainder(x, 0) et remainder(math.inf, x) soulèvent ValueError pour tout x non-NaN. Si le résultat de l'opération de reste est zéro, ce zéro aura la même valeur que le reste de l'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, le résultat de la fonction est toujours exactement représentable : aucune erreur d'arrondi n'est d'arrondi n'est introduite.
Numéro 29962 décrit la raison d'être de la création de la nouvelle fonction.