Why I get the following result in python 2.7, instead of '055'?
>>> str(055)
'45'
055 is an octal number whose decimal equivalent is 45, use oct to get the correct output.
>>> oct(055)
'055'
Syntax for octal numbers in Python 2.X:
octinteger ::= "0" ("o" | "O") octdigit+ | "0" octdigit+
But this is just for representation purpose, ultimately they are always converted to integers for either storing or calculation:
>>> x = 055
>>> x
45
>>> x = 0xff # HexaDecimal
>>> x
255
>>> x = 0b111 # Binary
>>> x
7
>>> 0xff * 055
11475
Note that in Python 3.x octal numbers are now represented by 0o. So, using 055 there will raise SyntaxError.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With