python函数问题 开N次方根

请问用python怎么写出来,设计一个函数,用python 开任何数的n次方根,可以写出代码吗

用pow(a, b)函数即可。需要开a的r次方则pow(a, 1/r)。

你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

import math

def npow(a,r):
    return math.pow(a,1/r)

print(npow(10,4))

使用python自带的pow函数即可
写为

def sqrt(base,exp):
    return pow(base,1/exp)

print(sqrt(64,2))

需要对参数为0的情况即分母为0的情况做一个异常处理,代码如下:

import math
def test_sqrt(a,b):
    try:        
        print(math.pow(a,1/b))
    except Exception as e:
        print(e.__class__.__name__,e)
test_sqrt(16,2)
test_sqrt(16,0)

如对你有帮助,请点击我回答右上角【采纳】按钮采纳支持一下。

数学上(x^n)^m = x^(n*m),因此x^(1/n)就是开n次方根。
python内置的中pow(x, n)函数可以求任意次方,其中x为底数,n为指数。将n变为n的倒数即可开n次方根。下面是代码实现:

def sqrt(x, n):
  return pow(x, 1.0 / n)

# output: 8.0
print(sqrt(64, 2)) 

# Python3 output: (4.898587196589413e-16+8j); 
# Python2 output: ValueError: negative number cannot be raised to a fractional power
print(sqrt(-64, 2)) 

这里有3点需要注意:

  1. 为了兼容Python 2.x,这里要写1.0,这样1.0/n的结果才是浮点数;否则Python 2.x中,1/n结果为0,任何数的0次方都为1;
  2. Python 自带的math模块也有pow()函数,但是math模块中的pow()函数不支持虚数解,即当底数为负数时,math.pow()函数会报

    ValueError: math domain error

  3. Python 2.x自带的pow()函数也是不支持虚数解的,当底数为负数时,pow()会报

    ValueError: negative number cannot be raised to a fractional power

这可能是全网最全面的解答了~~