Maison >développement back-end >Tutoriel Python >Pourquoi la division entière dans Python 2 donne-t-elle des résultats inattendus avec des nombres négatifs ?

Pourquoi la division entière dans Python 2 donne-t-elle des résultats inattendus avec des nombres négatifs ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-25 02:50:30280parcourir

Why Does Integer Division in Python 2 Give Unexpected Results with Negative Numbers?

Résultats inattendus de la division entière

Dans Python 2, effectuer une division entière avec des nombres négatifs peut donner des résultats surprenants. Par exemple, en divisant 8 par -7, le résultat est -2, bien que le quotient attendu soit d'environ -1,143.

Comprendre la division au sol

Division entière, souvent appelée « division d'étage » dans Python 2, arrondit le résultat à l'entier le plus proche. Ce comportement dicte que même lors de la division d'entiers positifs et négatifs, le résultat est toujours plus négatif.

Exemples d'énigmes

Ce principe d'arrondi conduit à des résultats déroutants, comme illustré par les opérations de division suivantes :

  • 8/(-7) = -2
  • 8/7 = 1

Python 3 Fixes l'Anomalie

Dans Python 3, ce problème est résolu. Pour la même opération, 8/(-7), la sortie est -1,143. Cependant, si le comportement souhaité est une division entière, l'utilisation de l'opérateur "//" répliquera le résultat de Python 2.

Explication technique

Dans Python 2, le le type d'un entier divisé par un autre entier est également un entier. Le résultat est donc arrondi à l’entier inférieur le plus proche. Python 3 introduit la conversion de type automatique, qui permet au résultat d'être représenté sous forme de nombre à virgule flottante, conservant sa valeur réelle.

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