我正在尝试编写一个函数以将所有数字(例如1和4)相乘,结果应为1 * 2 * 3 =6。但是,在编写这段代码时遇到了一些麻烦。我已在尝试过的下方张贴了内容。
import numpy as np
def multiply_between(num1, num2):
result = np.prod(range(num1, num2))
return result
我在想的另一种方式是这样的,但我似乎无法使其正常工作。
def multiply_between(num1, num2):
for num in range(num1, num2):
return num * num
使用numpy时,我得到了正确的答案,但我想知道是否有算法来做到这一点。
答案 0 :(得分:4)
您需要存储正在运行的产品,然后在最后将其退回:
def multiply_between(num1, num2):
result = 1
for num in range(num1, num2):
result *= num
return result
如果您想要单线,请将functools.reduce
与operator.mul
一起使用:
import functools
import operator
def multiply_between(num1, num2):
return functools.reduce(operator.mul, range(num1, num2))
答案 1 :(得分:0)
您要在返回之前存储先前乘法的结果:
def multiply_between(num1, num2):
total = None
for num in range(num1, num2):
if total is None:
total = num
else:
total *= num
return total