2 votes

Pourquoi le 0-padding n'est-il pas autorisé en Python ?

Je viens de remarquer que le 0-padding n'est pas autorisé en Python et je me demandais pourquoi ce choix avait été fait.

Par exemple :

a = 09

ne fonctionne pas alors que

a = 9

fait

Comment ça se passe ?

Merci beaucoup pour vos réponses !

8voto

nos Points 102226

Python, comme beaucoup d'autres langages, traite les nombres commençant par 0 comme étant en octal notation. 09 n'est pas valable en octal

Voir chapitre 2.4.4 dans la référence du langage python.

3voto

Daren Thomas Points 26812

Pour compléter ce qu'a dit @nos :

>>> a = 01
>>> a
1
>>> a = 07
>>> a
7
>>> a = 010
>>> a
8
>>> a = 08
  File "<stdin>", line 1
    a = 08
         ^
SyntaxError: invalid token

Ainsi, a = 010 est octal 10 soit la valeur décimale 8. L'octal ne connaît que les chiffres 0 à 7. C'est pourquoi cela n'est pas possible.

2voto

Joël Points 1201

C'est parce que les nombres commençant par 0 sont des nombres octaux, et que les chiffres octaux vont de 0 à 7 !

Faire a = 07 est parfaitement accepté, en tant qu'octal ; ainsi a = 061 conduira a pour contenir 49.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X