相关疑难解决方法(0)

为什么Python 3允许"00"作为0的文字而不允许"01"作为1的文字?

为什么Python 3允许"00"作为0的文字而不允许"01"作为1的文字?有充分的理由吗?这种不一致令我感到困惑.(我们正在讨论Python 3,它故意破坏向后兼容性以实现一致性等目标.)

例如:

>>> from datetime import time
>>> time(16, 00)
datetime.time(16, 0)
>>> time(16, 01)
  File "<stdin>", line 1
    time(16, 01)
              ^
SyntaxError: invalid token
>>>
Run Code Online (Sandbox Code Playgroud)

python integer literals python-3.x leading-zero

109
推荐指数
2
解决办法
4912
查看次数

Python无法处理以0开头的数字字符串.为什么?

我刚刚在我的python解释器上执行了以下程序:

>>> def mylife(x):
...     if x>0:
...             print(x)
...     else:
...             print(-x)
... 
>>> mylife(01)
File "<stdin>", line 1
mylife(01)
        ^
SyntaxError: invalid token
>>> mylife(1)
1
>>> mylife(-1)
1
>>> mylife(0)
0
Run Code Online (Sandbox Code Playgroud)

现在,我已经看到了这个,但正如链接所说,对于八进制的0在python中不再起作用(即在python3中不起作用).但这不意味着应该正确解释以0开头的数字的行为吗?在base-2中还是在正常的base-10表示中?既然不是这样,为什么python表现得那样呢?这是一个实施问题吗?或者这是一个语义问题?

python syntax-error python-3.x

21
推荐指数
2
解决办法
8003
查看次数

PYTHON eval和int之间有什么区别

之前我听说eval(input(a))会自动将字符串转换为int,但如果我编码

age = eval(input("enter age"))
Run Code Online (Sandbox Code Playgroud)

在输入期间我输入01这是一个错误,但当我编码

age = int(input("enter age"))
Run Code Online (Sandbox Code Playgroud)

01输入效果很好.为什么?

python python-3.x

3
推荐指数
2
解决办法
5486
查看次数