Python,使用一个循环的幂函数



我试图解决一个问题,编写一个与运算符**相同的工作的Power by 函数(例如通过python( 解决后,我又得到了另一个任务: 我只能使用一个循环,并且只能使用一个 if\else。

我很想得到一些见解 我是一个初学者,不知道如何走得更远。

我的代码是: ...

def power(x, y):
s = x
if y > 0:
for i in range (1, y):
s = s * x
elif (y < 0):
for i in range (y, -1):
s = s * x
s = 1 / s
else:
s = 1
return s
print(power(3, 5))
print(power(3, -5))
print(power(3, 0))

您可以使用abs功能吗?

from typing import Union

def power(x: Union[float, int], y: int) -> Union[float, int]:
s: Union[float, int] = 1
for _ in range(abs(y)):
s *= x
if y < 0:
s = 1 / s
return s

assert power(3, 5) == 243
assert 0.0040 < power(3, -5) < 0.0042
assert power(3, 0) == 1

我会这样做的一种方法是创建一个接受数字和指数的函数。 然后我会创建一个列表,其中包含该数字的exp金额。将列表中的所有内容相乘得到结果:

def power(num, exp):
prod = 1
powers = [num] * exp
for n in powers:
prod *= n
return prod

最新更新