在python中使用for循环的factorial

时间:2017-10-26 03:09:14

标签: python for-loop

result = 1
num = 1
while num <= 5: 
    result *= num 
    num = num + 1
print(result) #this gives me 5! 

然而,我想用for循环做这个。我试过用这个

result = 1
for num in (1, 6, 1): 
    result *= num 
    print(result) #just to see intermediate calculations
print(result)

结果我得= 6而不是120.

1
6
6 

是我得到的输出。

我为for循环做错了什么?

4 个答案:

答案 0 :(得分:7)

我很确定你的意思是将该元组应用于范围函数:

for num in range(1, 6, 1):

虽然range(1, 6)就足够了。步骤1是默认值。

(1, 6, 1)只是3个元素的元组,161

答案 1 :(得分:0)

你只需在循环中设置有三个元素1,6,1。您应该替换为operator T()

答案 2 :(得分:0)

问题在于你的循环:

-f

答案 3 :(得分:0)

def factorial(n):
    result = 1
    for i in range(1,n):
        i=i+1
        result=result*i
        
    return result