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