Maison  >  Article  >  développement back-end  >  Quel est le comportement inattendu dans la division entière et comment est-il géré en Python ?

Quel est le comportement inattendu dans la division entière et comment est-il géré en Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-24 14:48:02402parcourir

What is the Unexpected Behavior in Integer Division and How is it Handled in Python?

Résultats inattendus dans la division entière

La division entière négative en programmation peut donner des résultats surprenants, comme l'observation selon laquelle 8/-7 produit un valeur entière de -2. Ce résultat découle du concept de division d'étage, où les entiers négatifs sont arrondis à la valeur la plus négative suivante.

Dans Python 2, la division entière applique automatiquement la division d'étage. Par conséquent, lors de l'exécution de 8/-7, Python arrondit le résultat réel de 8,0/(-7,0), qui est d'environ -1,143, à l'entier le plus négatif de -2. Ce comportement d'arrondi explique également pourquoi 8/7 donne 1.

Ce comportement peut prêter à confusion, car il contredit l'attente mathématique d'obtenir un résultat fractionnaire pour une division entière négative. Cependant, il est essentiel de reconnaître que la division entière est une opération distincte qui tronque les parties fractionnaires.

Pour surmonter ce comportement, Python 3 a introduit un changement. Dans Python 3, la division entière d'entiers négatifs produit un résultat à virgule flottante. Si l'opération de division d'origine était 8/(-7), le résultat serait la valeur fractionnaire -1,143.

Si le maintien du comportement de division au sol est souhaité dans Python 3, l'opérateur // peut être utilisé. Cet opérateur effectue explicitement une division d'étage, fournissant les mêmes résultats que l'opérateur de division entière dans Python 2.

Pour plus d'informations, consultez la proposition d'amélioration Python PEP 238, qui traite de la modification de l'opérateur de division en Python.

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:
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