python - 将一个数字范围内的所有数字相乘
问题描述
我正在尝试编写一个函数来乘以(比如说 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 时,我得到了正确的答案,但我想知道是否有算法方法可以做到这一点。
解决方案
您需要存储正在运行的产品,然后在最后返回它:
def multiply_between(num1, num2):
result = 1
for num in range(num1, num2):
result *= num
return result
如果您想要单线,请使用functools.reduce
with operator.mul
:
import functools
import operator
def multiply_between(num1, num2):
return functools.reduce(operator.mul, range(num1, num2))
推荐阅读
- typescript - 类型运算符而不是声明扩展类的接口
- vba - 以连续形式显示附加记录信息
- javascript - 从特定键中提取键值
- android - 在 android 中实现了简单的 facebook 身份验证,但未能在 firbase 中创建应用程序
- c++ - 如何在 Vim 编辑器中修复 YCM 打印“使用未声明的标识符 'cout”或“命名空间 'std 中没有名为 'cout' 的成员”?
- apache-flink - 如何在 Apache Flink 中共享变量和日志记录?
- ios - 如何隐藏“共享选项”并将用户直接带到 Swift 中的“保存到文件”屏幕
- git - 常规和分离的管道在合并请求时随机影响
- julia - 安装DifferentialEquations包时Julia出错
- sqlite - Xamarin SQLite 数据库连接问题