Maison  >  Article  >  développement back-end  >  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
Barbara Streisandoriginal
2024-10-24 10:45:02198parcourir

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