在 Python 中乘以范围内的项目

新手上路,请多包涵

我是 Python 的新手,目前正在参加免费的在线课程。

我一直在试图弄清楚如何对我的课程中发现的这个简单的可选问题进行编码:

[ ] 使用 range(x) 将数字 1 乘以 7

1x2x3x4x5x6x7 = 5040

我为范围创建了一个变量 7,并为循环中使用的产品创建了一个变量:

 x = 7
product = 0

for item in range(x):

这就是我被困的地方。我在循环中尝试类似的事情:

产品 = 项目 \* 项目

这甚至没有任何意义。我现在完全精神障碍了。我意识到这应该是一件容易的事,但无论出于何种原因都不能。我试过制作其他变量,如“number”和“previous_number”来让事情变得更容易,但我只是感到困惑。

我需要在此解决方案中使用 for 循环。我只是现在不明白其中的逻辑。解决方案和解释会很棒!请帮忙!

原文由 DJ Joel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 612
2 个回答

看一下这个:

 answer = 1

for i in range(1,8):
    print("Right now, answer is", answer)
    print("Right now, i      is", i)
    print("I am going to multiply answer ({}) with i ({}) and store the result in answer".format(answer, i))
    answer = answer * i
    print("Now, answer is", answer)

print("Finally, answer is", answer)

原文由 inspectorG4dget 发布,翻译遵循 CC BY-SA 3.0 许可协议

您需要初始化 product = 1 (因为 1 是乘法恒等式)并且在循环中您只需要:

 product *= item

这是以下简称:

 product = product * item

在 python 中还有一个 reduce 函数可以处理这些类型的问题:

 In []:
import operator as op
import functools as ft

x = 7
ft.reduce(op.mul, range(1,x+1))

Out:
5040

原文由 AChampion 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进