为什么我在 python 2.7 中得到以下结果,而不是“055”?
>>> str(055)
'45'
055
是一个八进制数,其十进制等效值是45
, use oct
以获得正确的输出。
>>> oct(055)
'055'
八进制数的语法在 Python 2.X 中:
octinteger ::= "0" ("o" | "O") octdigit+ | "0" octdigit+
但这只是为了表示目的,最终它们总是转换为整数以进行存储或计算:
>>> x = 055
>>> x
45
>>> x = 0xff # HexaDecimal
>>> x
255
>>> x = 0b111 # Binary
>>> x
7
>>> 0xff * 055
11475
Note在 Python 3.x 中,八进制数现在表示为0o
。所以,使用055
将会提高SyntaxError
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)