SWJ7385650 发表于 2017-10-25 22:41:23

求助 python for循环

def   factorial(n):
        result=n
        forI in range(1:n):
                result*=I
这个代码为什么返回是n的阶乘难道不是nn, n(n-1), n(n-2)......nma
               

雨水 发表于 2017-10-25 23:03:42

首先这个函数忘了return
result第一个值是n,我认为只要range(1:n-1)就可以了

BngThea 发表于 2017-10-26 16:39:14

forI in range(1:n):
                result*=I
这是python中的for循环,工作工程大概如下:
1.I = 1, result == n * 1
2.I = 2,   result == n * 1 * 2
3.I = 3,   result == n * 1 * 2 * 3
...
最后, I = n-1, result == n * 1 * 2 * 3 * . . . * (n - 2) * (n -1)
所以result为 n!

另外,楼上的说法不对,range(1,n)最大只到 n-1
页: [1]
查看完整版本: 求助 python for循环