Maison > Article > développement back-end > Pourquoi les zéros non significatifs dans Python 2.x produisent-ils parfois des valeurs entières inattendues ?
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 :
Ainsi, 011 est égal à 9 en décimal (8 1 = 9). De même :
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!