Python 我在for循环中做错了什么?

Python 我在for循环中做错了什么?,python,for-loop,Python,For Loop,问题来了 填空使阶乘函数返回阶乘 n。然后,用 相应的号码。记住一个数的阶乘是 定义为一个整数和它前面的所有整数的乘积。对于 例如,五(5!)的阶乘等于1*2*3*4*5=120。, 回想一下,零(0!)的阶乘等于1 我的解决方案: def factorial(n): result = 1 for x in range(1,n): result = result* n return result for n in range(1,10): pri

问题来了

填空使阶乘函数返回阶乘 n。然后,用 相应的号码。记住一个数的阶乘是 定义为一个整数和它前面的所有整数的乘积。对于 例如,五(5!)的阶乘等于
1*2*3*4*5=120。
, 回想一下,零(0!)的阶乘等于1

我的解决方案:

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

for n in range(1,10):
    print(n, factorial(n+1))
鉴于:

def factorial(n):
    result = 1
    for x in range(1,___):
        result = ___ * ___
    return ___

for n in range(___,___):
    print(n, factorial(n+___))
应该是

result = result* x

在for循环中,您将乘以结果*n,这不是计算阶乘的方式。在这里,您需要将结果乘以下一个x数,以获得正确的阶乘

for x in range(1,n):
    result = result * x
return result
请注意,范围(1,n)产生从1到n-1的值。所以,您应该在第一个函数中使用range(1,n+1),以便它真正返回阶乘(n)。用错误的参数调用它以获得正确的值是不可接受的。我希望这不是你老师说的。。。
for x in range(1,n):
    result = result * x
return result