<分区>
为什么我在 python 2.7 中得到以下结果,而不是“055”?
>>> str(055)
'45'
<分区>
为什么我在 python 2.7 中得到以下结果,而不是“055”?
>>> str(055)
'45'
最佳答案
055
是一个八进制数,十进制等于45
,使用oct
得到正确的输出。
>>> oct(055)
'055'
Syntax for octal numbers在 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
注意,在 Python 3.x 中,八进制数现在由 0o
表示。因此,使用 055
会引发 SyntaxError
。
关于Python 2.7 str(055) 返回 "45"而不是 055,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21419239/