0

“Faculty”函数应该返回它作为参数接收到的数字的学院。一个数 n 的函数是 1 * 2 * 3 * 4 * ... * n。例如,faculty (5) 应该是 1 * 2 * 3 * 4 * 5 = 120。现在编写的函数总是返回 0,无论它作为参数接收到什么数字。

那么,我该如何解决这个问题呢?(我只是想学习,我是新人)

def faculty(integer):
    result = 1
    for i in range(integer):
        result *= i
    return result
4

3 回答 3

2

range 语句以 0 作为起点。因此,结果直接设置为 0。您可以将其更改为:

def faculty(integer):
    result = 1
    for i in range(1, integer+1):
        result *= i
    return result
于 2020-05-19T07:58:20.463 回答
1

该方法range(stop)生成值[0;stop[,所以你有 0 杀死一切,而不是stop. 你需要的range(start, stop)range(1, integer+1)生成[1;value+1[

def faculty(integer):
    result = 1
    for i in range(1, integer+1):
        result *= i
    return result

调试时,一个很好的方法是在大多数情况下使用print来查看使用哪些值来理解代码的行为

于 2020-05-19T07:58:04.987 回答
1

考虑您的循环正在循环的值。

for i in range(integer):
    print(i)
于 2020-05-19T07:58:15.750 回答