为什么Python会给出“错误”的答案?
x = 16
sqrt = x**(.5) #returns 4
sqrt = x**(1/2) #returns 1
是的,我知道import math
并使用sqrt
。但我正在寻找上述问题的答案。
发布于 2012-03-07 10:51:58
您必须编写:sqrt = x**(1/2.0)
,否则将执行整数除法,并且表达式1/2
将返回0
。
这种行为在Python2.x中是“正常的”,而在Python3.x中1/2
的计算结果是0.5
。如果您希望Python 2.x代码的行为像3.x w.r.t。部门写入from __future__ import division
-然后1/2
将评估为0.5
,为了向后兼容,1//2
将评估为0
。
根据记录,计算平方根的首选方法是:
import math
math.sqrt(x)
发布于 2018-04-03 08:11:13
import math
math.sqrt( x )
这是对答案链的一个微不足道的补充。然而,由于这个主题是非常常见的谷歌点击,这值得添加,我认为。
发布于 2012-03-07 10:51:06
/
在Python2中执行整数除法:
>>> 1/2
0
如果其中一个数字是浮点数,它将按预期工作:
>>> 1.0/2
0.5
>>> 16**(1.0/2)
4.0
https://stackoverflow.com/questions/9595135
复制相似问题