Maison > développement back-end > Tutoriel Python > Quand la division entière en Python vous intrigue-t-elle ?

Quand la division entière en Python vous intrigue-t-elle ?

Linda Hamilton
Libérer: 2024-10-24 11:57:02
original
335 Les gens l'ont consulté

When Does Integer Division in Python Puzzle You?

Division d'entiers en Python : une énigme

Les opérations de division en Python peuvent conduire à des résultats inattendus lorsque des entiers négatifs sont impliqués. L'expression suivante :

<code class="python">8 / -7</code>
Copier après la connexion

renvoie le résultat surprenant de -2. Ce résultat peut sembler contre-intuitif, car on pourrait s'attendre à ce qu'une simple opération arithmétique donne un nombre réel négatif.

Comprendre le comportement

L'explication de ce comportement réside dans le concept de « division d'étage » en Python. Contrairement aux mathématiques, où la division aboutit toujours à un nombre réel, la division entière en Python arrondit le résultat au nombre entier le plus proche. Cet effet "plancher" est responsable du surprenant résultat entier négatif.

Dans ce cas, l'opération 8 / -7 calcule en fait 8,0 / (-7,0), soit environ -1,143. Cependant, en raison de la division entière, le résultat est arrondi à -2.

Implications et solutions

Ce comportement peut conduire à des résultats déroutants, surtout lorsque l'on mélange des choses positives et positives. entiers négatifs dans les opérations de division. Par exemple :

<code class="python">8 / 7  # Returns 1
8 / -7 # Returns -2</code>
Copier après la connexion

Dans Python 3, cette bizarrerie a été résolue en introduisant un opérateur distinct pour la division entière, noté //. L'utilisation de cet opérateur garantit que le résultat est toujours un entier, comme dans le comportement de Python 2.

<code class="python">8 // -7  # Returns -2</code>
Copier après la connexion

Conclusion

Les résultats surprenants de la division entière négative en Python découlent du concept de division d'étage, qui arrondit le résultat à l'entier le plus proche. Pour éviter ces résultats inattendus, considérez ce qui suit :

  • Utilisez la division en virgule flottante (8.0 / -7.0) pour obtenir un résultat numérique réel.
  • Utilisez explicitement l'opérateur // dans Python 3 pour la division entière.
  • Soyez conscient des surprises potentielles lorsque vous mélangez des entiers positifs et négatifs dans les opérations de division.

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