Умножьте все числа в диапазоне чисел - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь написать функцию, чтобы умножить все числа между (скажем, 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 ]

4 голосов
/ 18 октября 2019

Вам нужно сохранить работающий продукт, а затем вернуть его в самом конце:

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))
0 голосов
/ 18 октября 2019

Вы хотите сохранить результат предыдущих умножений перед возвратом:

def multiply_between(num1, num2):
    total = None
    for num in range(num1, num2):
        if total is None:
            total = num
        else:
            total *= num
    return total
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...