使用python范围函数进行乘法

时间:2016-10-15 13:58:36

标签: python-3.x

我很高兴来到这里!我有一个问题,指的是我的python prp 我一直在努力掌握的编程课程!这个赋值有一个问题,基本上我必须定义函数Power(x,n),它必须将值x提升到n的幂!我不是大声使用运算符“**”而且我们只能使用在类中学到的东西,所以基本上使用if-else语句,布尔代数,范围和for循环!它必须只返回输入值的值!非常感谢帮助,因为我正在努力解决这个问题! 必须使用范围功能......谢谢! :)

2 个答案:

答案 0 :(得分:0)

试试这个:

def power(x, n):
    result = 1
    for i in range(n):
        result *= x
    return result

这给了你正确的答案。例子:

>>> power(2, 3)
8
>>> 2**3
8
>>> 
>>> power(4, 6)
4096
>>> 4**6
4096

或者,如果您被允许使用数学模块,您可以通过推广到以下内容来包含底片和分数:

def power(x, n):
    return math.exp(math.log(x) * n)

返回:

>>> power(2, 0.5)
1.414213562373095
>>> power(2, -1)
0.5
>>> 

答案 1 :(得分:-1)

通过递归而不是更漂亮。

def power(n, k):
    return 1 if k == 0 else n*power(n, k-1)

def power(n, k):
    if k < 0:
        return 1 / power(n, abs(k))
    return 1 if k == 0 else n*power(n, k-1)

但是如果必须使用范围对象,则可以通过添加来构建它。

def multiply(n, k):
    return sum(n for _ in range(k))

def power(n, k):
    return sum(multiply(n, n) for _ in range(k-1)) if k != 0 else 1

否则你可以像

那样做
def power1(n, k):
    return sum(n*n for _ in range(k-1)) if k != 0 else 1