Maison >développement back-end >Tutoriel Python >Pourquoi Python 3 effectue-t-il une division en virgule flottante au lieu d'une division entière ?

Pourquoi Python 3 effectue-t-il une division en virgule flottante au lieu d'une division entière ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-14 18:27:16931parcourir

Why Does Python 3 Perform Floating-Point Division Instead of Integer Division?

Pourquoi Python effectue une division à virgule flottante pour une division entière

Dans les versions récentes de Python (à partir de la version 3), la division entière (divisant deux entiers) donne un flottant au lieu de un entier. Ce comportement diffère des versions précédentes, qui privilégiaient les résultats entiers pour les opérandes entiers.

Considérez la division suivante dans Python 3 :

>>> 2 / 2
1.0

Ce résultat surprenant peut prêter à confusion, surtout si vous êtes habitué aux anciennes versions de Python.

La raison derrière le changement

La justification de ce changement est documentée dans PEP-238 : Changer l'opérateur de division. La proposition visait à :

  • Introduire une division d'étage sans ambiguïté, désignée par l'opérateur //.
  • Éliminer le potentiel de conversions de type involontaires et d'erreurs d'aller-retour avec des opérandes de type mixte.

Implications pour votre code

Ce changement a plusieurs implications pour votre Code Python :

  • Si vous avez besoin d'une division entière (arrondie vers zéro), utilisez explicitement l'opérateur //.
  • Si vous attendez un résultat flottant, le casting n'est pas nécessaire.
  • Pour une lisibilité maximale, pensez à utiliser les opérateurs // et / judicieusement pour transmettre votre intention clairement.

Exemple :

# Explicit floor division
result = 2 // 2  # 1

# Float division
result = 2 / 2  # 1.0

Ressources supplémentaires

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