将数字范围内的所有数字相乘

时间:2019-10-18 18:47:29

标签: python multiplication

我正在尝试编写一个函数以将所有数字(例如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时,我得到了正确的答案,但我想知道是否有算法来做到这一点。

2 个答案:

答案 0 :(得分:4)

您需要存储正在运行的产品,然后在最后将其退回:

def multiply_between(num1, num2):
    result = 1
    for num in range(num1, num2):
        result *= num
    return result

如果您想要单线,请将functools.reduceoperator.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