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