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

Susan Sarandon
Libérer: 2024-10-24 14:48:02
original
412 Les gens l'ont consulté

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!

source:php
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!