Maison  >  Article  >  développement back-end  >  Pourquoi les zéros non significatifs dans Python 2.x produisent-ils parfois des valeurs entières inattendues ?

Pourquoi les zéros non significatifs dans Python 2.x produisent-ils parfois des valeurs entières inattendues ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-19 18:34:02640parcourir

Why Do Leading Zeros in Python 2.x Sometimes Produce Unexpected Integer Values?

Les curieuses constantes octales de Python

Lors de l'utilisation de petits entiers avec un zéro non significatif dans les versions Python 2.x antérieures à 2.6, des résultats inattendus peuvent survenir . Ces nombres entiers sont interprétés comme des nombres octaux, un système de base numérique différent du système décimal standard.

Notation octale expliquée

En notation octale, la base est 8 au lieu de 10. Chaque chiffre représente une puissance de 8. Par exemple, dans le nombre 011 :

  • 1 représente 1 * 8¹ (8)
  • 1 représente 1 * 8⁰ (1)

Ainsi, 011 est égal à 9 en décimal (8 1 = 9). De même :

  • 0100 = 1 8² 0 8¹ 0 * 8⁰ = 64
  • 027 = 2 8¹ 7 8⁰ = 23

Python 3 et constantes octales

Dans Python 3, les constantes octales nécessitent un préfixe explicite, 0o, pour les distinguer des entiers décimaux. Ainsi, 011 de Python 2.x s'écrirait 0o11 dans Python 3.

Vérification de type

Malgré leur comportement inhabituel, ces constantes octales restent des entiers en Python :

>>> type(027)
<class 'int'>

Pratique des constantes octales

Bien que la notation octale était courante aux débuts de l'informatique, elle est rarement utilisée aujourd'hui. La notation décimale ou hexadécimale est généralement préférée pour des raisons de lisibilité et de compatibilité. Il est cependant important de connaître les constantes octales dans Python 2.x pour comprendre leurs effets potentiels sur le comportement du code.

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