如何计算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])