Skip to main content
 首页 » 编程设计

python之040和40的区别

2025年05月04日12bonelee

我是一名新的 Python 程序员,偶然发现了这个看似异常的现象 --

>>> line = input() 
40 
>>> print line*3 
120 
>>> line = input() 
040 
>>> print line*3 
96 

是什么导致了这种偏差?有解释吗?

请您参考如下方法:

040 是 octal整数文字。它的值为0*82 + 4*81 + 0*80 == 32。因此,当您将它乘以 3 时,结果为 96。

Python 2.x 中整数文字的语法在 2.4.4. Integer and long integer literals 部分给出。语言引用。

感谢@JonClements 指出 040 仅在 Python 2.x 中有效,在 3.x 中无效(请参阅下面的评论)。