最新版python教程P50讲递归 用迭代实现阶乘好像有几步多余
本帖最后由 某一个“天” 于 2024-1-30 18:46 编辑# 迭代实现阶乘
def iter(n):
for i in range(1, n):
n *= i
print(n)
iter(10)
直接这样不好吗? 你提供的迭代实现阶乘的代码有一处小错误,range()函数的结束值是不包含在范围内的,所以应该将for循环的范围改为range(1, n+1)。此外,如果要计算n的阶乘,你需要设置一个变量来保存结果,并在每次迭代时更新它。下面是修正后的代码:
def iterative_factorial(n):
result = 1
for i in range(1, n+1):
result *= i
print(result)
iterative_factorial(10)
这样就可以得到正确的结果了。希望能帮到你!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 这算啥多余。。。都一样啊,就少一个变量而已 陶远航 发表于 2024-1-30 19:05
这算啥多余。。。都一样啊,就少一个变量而已
我只是怕小甲鱼另有深意。。。 某一个“天” 发表于 2024-1-30 19:14
我只是怕小甲鱼另有深意。。。
6 本帖最后由 jackz007 于 2024-1-30 20:07 编辑
函数属于工具,应该尽量避免输出任何信息,在本例中,函数 iter() 只需要返回计算结果,如有必要,输出信息应该由函数 iter() 的调用者来完成。就是说,iter() 不应该 print() 任何东西,必须 return 计算结果。 jackz007 发表于 2024-1-30 19:59
函数属于工具,应该尽量避免输出任何信息,在本例中,函数 iter() 只需要返回计算结果,如有必要,输 ...
哦 我懂你的意思,我是想省点事。谢谢你啦{:5_109:} 不多余 zhangchenyvn 发表于 2024-2-1 16:35
不多余
? 某一个“天” 发表于 2024-2-1 16:38
?
多一个少一个变量而已~
页:
[1]