Maison > développement back-end > Tutoriel Python > Pourquoi l'opérateur Modulo de Python produit-il un résultat positif avec des nombres négatifs ?

Pourquoi l'opérateur Modulo de Python produit-il un résultat positif avec des nombres négatifs ?

DDD
Libérer: 2024-11-29 20:38:11
original
1015 Les gens l'ont consulté

Why Does Python's Modulo Operator Produce a Positive Result with Negative Numbers?

Comportement de l'opérateur modulo Python avec des nombres négatifs

L'opérateur modulo (%) en Python gère les nombres négatifs différemment qu'en C ou C . Contrairement à ces langages, l'opérateur modulo de Python garantit toujours que le résultat a le même signe que le dénominateur.

Pourquoi -5 % 4 est évalué à 3, pas à -1

Considérons l'expression -5 % 4. Dans ce cas, elle est évaluée à 3 car le calcul se déroule comme suit :

  • (-5) / 4 = -1,25 (division à virgule flottante)
  • Étage(-1,25) = -2 (supprime la partie fractionnaire)
  • (-5) % 4 = (-2 × 4 3) % 4 = 3

Python choisit ce comportement car un résultat non négatif est généralement plus utile. Par exemple, lors du calcul des jours de la semaine à l'aide de la formule (2 - N) % 7, l'opérateur modulo garantit que le résultat se situe dans la plage [0, 6], représentant les jours de la semaine.

Contraste avec le comportement C

En C, si N est supérieur ou égal à 3 dans cette formule, le résultat serait négatif, ce qui n'est pas un nombre de jour valide. Pour obtenir un résultat correct, C nécessite un ajustement manuel en ajoutant 7 au résultat négatif.

Pour plus d'informations sur le comportement de l'opérateur modulo avec des nombres négatifs dans différentes langues, veuillez vous référer à l'article Wikipédia sur le modulo opérateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal