Python 2.7 str(055) 返回 "45"而不是 055

标签 python string python-2.7

<分区>

为什么我在 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/

相关文章:

python - 在pyqt中显示接收到的图像

python - sympy 表达式的 numpy 数组中某些符号的数值计算

java - 如何获取字符串中正则表达式的第一个匹配项?

C - 如何从一个字符串中提取不同的列?

python-2.7 - 在python中删除列表中的相邻元素

python - 将 Tkinter 复选按钮文本字符向左对齐

python - set.intersection 和其他的文档?

python - Pandas 数据框中元素和子集的总长度

sql - "bad double value"在 Google BigQuery 中

Python 表格格式 : want to display the table with one blank element