Bil*_*son 4 python numbers sequence
就像我告诉程序一样n=10,我将如何让它返回10*9*8*7*6*5....1?
我想了一会儿循环,但我觉得我搞砸了某个地方,因为它没有总结序列中的所有数字.
我目前的代码看起来像这样
def product(n):
i=n
a=n-1
while a>0:
return i * a
b=i * a
a=a-1
i=i-1
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法可以不使用递归?抱歉这个令人难以置信的初学者问题,但我正在努力教自己如何编码.你必须从某个地方开始!
谢谢!
既然您正在尝试学习编码,我不会给您一个完整的解决方案,但我会给您一些提示:
有一个for从1到n(使用range(1, n+1))而不是你的while-loop 的循环.这将生成您想要乘以的值并迭代正确的次数(while有时可能有点棘手).
有一个名为变量的变量product,每次都通过循环存储乘法的结果.
product在输入for-loop 之前初始化.进入内部后,您只需更新其值即可product.
完成循环后,可以使用该return语句返回值product.
最后,出于测试目的,您可能希望从较小的值开始n,例如4,并打印出您在循环中计算的值,以验证代码的工作方式.
有更多简洁和pythonic方法可以做到这一点,但这使用您已经设置的代码结构.当然还有你提到的递归.
一旦掌握了基础知识,您将会欣赏更为惯用的写作方式,或者为您调用适当的函数.