Python 040和40之间的差异

Python 040和40之间的差异,python,python-2.7,Python,Python 2.7,我是一名新的Python程序员,无意中发现了这种看似反常的现象-- 是什么导致了这种偏差?有什么解释吗?040是一个整数文本。它的值为0*82+4*81+0*80=32。因此,当你把它乘以3,结果是96 Python2.x中整数文本的语法在语言参考部分中给出 感谢@JonClements指出040仅在Python2.x中有效,在3.x中无效(请参见下面的注释)。040是一个整数文本。它的值为0*82+4*81+0*80=32。因此,当你把它乘以3,结果是96 Python2.x中整数文本的语法在

我是一名新的Python程序员,无意中发现了这种看似反常的现象--

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

040
是一个整数文本。它的值为0*82+4*81+0*80=32。因此,当你把它乘以3,结果是96

Python2.x中整数文本的语法在语言参考部分中给出

感谢@JonClements指出
040
仅在Python2.x中有效,在3.x中无效(请参见下面的注释)。

040
是一个整数文本。它的值为0*82+4*81+0*80=32。因此,当你把它乘以3,结果是96

Python2.x中整数文本的语法在语言参考部分中给出


感谢@JonClements指出
040
仅在Python2.x中有效,在3.x中无效(请参见下面的注释)。

Python2.x将
040
解析为八进制数。现在,现在使用八进制数的唯一原因可能是为了让不到二十年前就开始使用八进制数的程序员感到困惑,但事实上,我们仍然使用八进制数…

Python2.x将
040
解析为八进制数。现在,现在使用八进制数的唯一原因可能是为了让不到二十年前就开始使用八进制数的程序员感到困惑,但事实上,我们仍然有八进制数…

可能值得注意的是,这只是Py 2.x的情况,
040
在Python3.x中是一个无效的文本(例如,它必须是0o040)-但是它的
input
无论如何都是不一样的…@JonClements谢谢,我记下了。可能值得注意的是,这只是py2.x的情况,
040
在Python3.x中是无效的文本(例如它需要是0o040)-但是它的
input
无论如何都是不一样的…@JonClements谢谢,我记下了这一点。+1我认为20年前它们还没有足够的用途来赋予它们自己的文字格式……:)+1我不认为20年前它们有足够的用途来提供它们自己的文字格式…:)
>>> line = input()
40
>>> print line*3
120
>>> line = input()
040
>>> print line*3
96