python中的分数指数不一致



请有人在下面的例子中解释一下,如果取决于所引发的数字是直接输入还是作为变量输入,为什么会得到不同的答案?:

>>>print(-2**(1/0.33))
-8.169812850522913
>>>x=-2
>>>print(x**(1/0.33))
(-8.132819305372337-0.7765900841063754j)

此外,如果有人能解释如何获得第一个答案,但使用第二种方法,我将不胜感激

由于运算符优先级(**的优先级高于一元-(,您的第一个表达式被计算为:

-(2**(1/0.33))
# -8.169812850522913

而在第二种情况下,由于您已经将-2定义为一个变量,因此它被评估为:

(-2)**(1/0.33)
# (-8.132819305372337-0.7765900841063753j)

这恰好导致了一个复数。

第一种情况下,只有2具有指数,第二种情况下为'-2'。(-2)**(1/0.33)应给出第二个结果

最新更新