首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么‘-(Num)**(Even_number)’给予‘-(num^(Even_number))’作为结果?

为什么‘-(Num)**(Even_number)’给予‘-(num^(Even_number))’作为结果?
EN

Stack Overflow用户
提问于 2016-04-20 04:41:12
回答 5查看 65关注 0票数 3

这很奇怪我注意到了。

为什么-5**2给-25,math.pow(-5,2)给出25,有什么特别的原因吗?答案应该是25。那么-25的原因是什么呢?

代码语言:javascript
运行
复制
>>> -5**2
-25
>>> -5**4
-625
>>> 5**2
25
>>> 5**4
625
>>> import math
>>> pow(-5,2)
25
>>> pow(-5,4)
625
>>>
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-04-20 04:44:51

文档 for math.pow指定它将x提升到y的能力。

因此,math.pow计算(-5)**4。而仅仅编写-5**4等同于-1 * 5 **4,因为在Python中,一元操作符-的优先级小于power操作符**

票数 2
EN

Stack Overflow用户

发布于 2016-04-20 04:48:19

在Python中,**运算符具有较高优先而不是-运算符,因此在表达式中,5 ** 2首先被求值,然后被否定。您可以首先使用括号应用否定:

代码语言:javascript
运行
复制
>>> -5**2
-25
>>> (-5)**2
25
票数 4
EN

Stack Overflow用户

发布于 2016-04-20 04:48:14

这都是在文件中的解释

电力操作者比左边的一元运算符绑定得更紧密,而右边的电力操作员比一元运算符绑定得更紧。 因此,在无括号的幂和一元运算符序列中,从右到左计算运算符(这不限制操作数的求值顺序):-1**2的结果为-1。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36733958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档