如何计算python的平方根?
为什么python会给出“错误”的答案?
x= 16 sqrt= x**(.5) returns 4 sqrt= x**(1/2) returns 1
是的,我知道import math
和使用sqrt
。 但是我正在寻找上述的答案。
sqrt=x**(1/2)
正在做整数除法。 1/2 == 0
。
所以你计算x (1/2)在第一个例子中,x (0)在第二个。
所以这没有错,这是另一个问题的正确答案。
您必须写: sqrt = x**(1/2.0)
,否则执行整数除法并且expression式1/2
返回0
。
这个行为在Python 2.x中是“正常的”,而在Python 3.x中, 1/2
值是0.5
。 如果您希望Python 2.x代码的行为类似于from __future__ import division
3.x wrt division – 那么1/2
将评估为0.5
,为了向后兼容, 1//2
eill评估为0
。
而为了logging,计算平方根的首选方法是这样的:
import math math.sqrt(x)
/
在Python 2中执行整数除法:
>>> 1/2 0
如果其中一个数字是浮点数,则按预期工作:
>>> 1.0/2 0.5 >>> 16**(1.0/2) 4.0
你看到的是整数除法。 为了获得默认的浮点除法,
from __future__ import division
或者,您可以将1或2的1/2转换为浮点值。
sqrt = x**(1.0/2)
我希望下面提到的代码将回答你的问题。
from __future__ import print_function def root(x,a): y = 1 / a y = float(y) print(y) z = x ** y print(z) base = input("Please input the base value:") power = float(input("Please input the root value:")) root(base,power)
问候,阿里
你可以使用numpy来计算数组的平方根
import numpy as np np.sqrt([1,4,9])