有人能帮我使用这个python函数吗?我是新手,我不知道';我不明白它是怎么工作的

有人能帮我使用这个python函数吗?我是新手,我不知道';我不明白它是怎么工作的,python,Python,显然它打印了24张,但我不知道怎么会这样 这是阶乘。4! = 24它实际上是吹4!从x开始,递减1,再乘以现有答案,直到x为0,输出为4x3x2x1。迭代1: def mystery(x): # line 1 answer = 1 # line 2 while x > 0: # line 3 answer = x * answer # line 4

显然它打印了24张,但我不知道怎么会这样

这是阶乘。4! = 24它实际上是吹4!从x开始,递减1,再乘以现有答案,直到x为0,输出为4x3x2x1。

迭代1:

def mystery(x):                 # line 1
    answer = 1                  # line 2
    while x > 0:                # line 3
        answer = x * answer     # line 4
        x = x-1                 # line 5
    return answer               # line 6
                                # line 7
value = 4                       # line 8
print(mystery(value))           # line 9 
迭代2:

x = 4, answer = 1
answer = 4 * 1 --> answer = 4
x = x - 1 --> x = 3
迭代3:

x = 3, answer = 4
answer = 3 * 4 --> answer = 12
x = x - 1 --> x = 2
迭代4:

x = 2, answer = 12
answer = 2 * 12 --> answer = 24
x = x - 1 --> x = 1

现在x不是>0,所以迭代停止。

第8行作为
4
的参数传递给
神秘
函数。在
神秘
功能中:

1) 代码从
4
处的
x
开始,然后乘以
answer
,即
1
。答案设置为该值
4
<从
x
中减去code>1
x
现在是
3

2)
x
3
乘以
answer
,即从步骤1开始的
4
得到
12
<从
x
中减去code>1
x
现在是
2

3)
x
2
乘以
answer
,从第2步得到
24
,即
12
<从
x
中减去code>1
x
现在是
1

4)
x
1
乘以
answer
,从第3步得到
24
<从
x
中减去code>1
x
现在是
0
x
不再大于
0
,导致
循环停止

代码现在
print
s从
神秘
函数返回的值,该函数从步骤4开始为
24


简而言之,代码正在执行
4*3*2*1
,这相当于
24

,这非常有帮助。谢谢
x = 1, answer = 24
answer = 1 * 24 --> answer =  24
x = x - 1 --> x = 0