Maison > développement back-end > Tutoriel Python > Quelle est la différence de division entière négative entre Python 2 et Python 3 ?

Quelle est la différence de division entière négative entre Python 2 et Python 3 ?

Barbara Streisand
Libérer: 2024-10-24 10:45:02
original
391 Les gens l'ont consulté

What's the Difference in Negative Integer Division between Python 2 and Python 3?

Division entière négative délicate en Python

En travaillant sur une application, le résultat surprenant de la division entière a soulevé des questions. En divisant 8 par -7, le résultat est -2, une valeur entière. Pour comprendre ce phénomène, examinons les subtilités de la division entière.

Division entière contre vraie division

Python 2 utilise la division entière, désignée par "/", ce qui donne un quotient entier. Lors de la division d'entiers négatifs, le quotient est arrondi vers la valeur la plus négative (division plancher). Cela signifie que 8/-7 est tronqué à -2, même si la valeur réelle est plus proche de -1,143.

Python 3 revisité

Pour éviter cette ambiguïté, Python 3 a introduit la vraie division, qui aboutit toujours à une valeur flottante à moins que les deux opérandes ne soient des entiers. Ceci est cohérent avec la division mathématique et élimine le besoin de convertir manuellement les opérandes en flottants. Par conséquent, 8/-7 dans Python 3 serait correctement évalué à -1,143.

Division entière dans Python 3

Si vous avez toujours besoin d'une division entière dans Python 3, le // L'opérateur peut être utilisé. Semblable à la division entière dans Python 2, elle arrondit le quotient vers l'infini négatif.

Contexte historique

Le comportement de la division entière dans Python 2 a été influencé par les langages de programmation historiques et ne reflète pas les normes mathématiques. Python 3 a résolu ce problème en introduisant une véritable division, conforme aux attentes de la plupart des développeurs.

Ressources supplémentaires

Pour plus d'informations sur ce sujet, reportez-vous à l'amélioration Python Proposition 238 (PEP 238) au sujet du changement d'opérateur de division :

[PEP 238 -- Changer l'opérateur de division](https://www.python.org/dev/peps/pep-0238/ )

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