我使用的是Python 2.7.5.当将int提升到零的幂时,您可能会看到-1或1,具体取决于分子是正数还是负数.
直接键入python解释器会产生以下结果:
>>> -2418**0
-1
Run Code Online (Sandbox Code Playgroud)
这是正确的答案.但是当我输入同一个解释器时:
>>> result = -2481
>>> result**0
1
Run Code Online (Sandbox Code Playgroud)
答案是1而不是-1.使用此处建议的complex内置对结果没有影响.
为什么会这样?
你为什么期望它是-1?1是(根据我所教导的定义)正确的答案.
由于运算符优先级,第一个给出了错误的答案.
(-1)**0 = 1
-1**0 = -(1**0) = -(1) = -1
Run Code Online (Sandbox Code Playgroud)
有关0指数的定义,请参阅Wikipedia:http://en.wikipedia.org/wiki/Exponentiation#Zero_exponent
| 归档时间: |
|
| 查看次数: |
1352 次 |
| 最近记录: |