Python 3.x 使用python范围函数进行乘法

Python 3.x 使用python范围函数进行乘法,python-3.x,Python 3.x,我很高兴来到这里!我有一个关于python prp的问题 我一直在努力掌握的编程课程!这个任务有一个问题,基本上我必须定义函数的幂(x,n),它必须把x的值提高到n的幂!我不会大声使用运算符“**”,而且我们只能使用在课堂上学到的内容,因此基本上使用if-else语句、布尔代数、range和for循环!它必须只返回输入值的值!非常感谢您的帮助,因为我正在努力解决这个问题! 必须使用范围函数…谢谢!:) 试试这个: def power(x, n): result = 1 for i

我很高兴来到这里!我有一个关于python prp的问题 我一直在努力掌握的编程课程!这个任务有一个问题,基本上我必须定义函数的幂(x,n),它必须把x的值提高到n的幂!我不会大声使用运算符“**”,而且我们只能使用在课堂上学到的内容,因此基本上使用if-else语句、布尔代数、range和for循环!它必须只返回输入值的值!非常感谢您的帮助,因为我正在努力解决这个问题! 必须使用范围函数…谢谢!:)

试试这个:

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
>>> 

相反,通过递归,它更漂亮

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

否则你可以像这样做

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

是的,它工作得很好,在你的代码中就这么简单!我一直在挣扎的是数学背后的真实逻辑!我还有两个问题要问,在我看到你是怎么做的之后,我现在就要问了!谢谢:)可能超出范围,但是负数或非整数呢?将其概括为:
math.exp(math.log(x)*n)
。让别人做作业完全没有用。
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