我知道您不能将变量定义为
height = 06
我们为什么不能这样做?是的,没有整数以0开头,但是在数学上,06与6相同,为什么编程语言不允许我们以这种方式定义它(即使没有实际用途),而不是抛出错误?
如果以这种方式定义变量,是否有任何特定问题会引起问题?在使用或打印此类变量时,解释器/编译器可以将其仅用作“ 6”,但是为什么在我们仅定义时抛出错误?只是约定吗?
答案 0 :(得分:6)
如果您查看integer literals的定义,则会看到:
请注意,不允许使用非零十进制数字开头的零。这是为了消除Python在3.0版之前使用的C样式八进制文字。
C和Python 2都使用“ 0x”前缀表示十六进制数字,使用“ 0”前缀表示八进制数字。
Python 3分别使用“ 0x”和“ 0o”。
请注意,从字符串转换为整数时,可以为前导零:
In [1]: int('06')
Out[1]: 6
答案 1 :(得分:2)
请查看此提示,进一步解释原因: https://www.python.org/dev/peps/pep-3127/#motivation
在python 2中:
>>> height = 013
>>> print(height)
11
>>> print(sys.version)
2.7.12 (default, Dec 4 2017, 14:50:18)
[GCC 5.4.0 20160609]
>>>