Skip to main content
 首页 » 编程设计

Python递归函数问题

2025年05月04日16birdshome

<分区>

我是 python 初学者,目前我正在为 python 递归函数而苦苦挣扎:

x = 10 
n = 3 
 
 
def rec(x,n): 
    if n>0: 
        #global x2 
        x2 = x*n 
        return rec(x2,n-1) 
    else: 
        return x2 
 
# function call: 
fcall = rec(x,n) 
 
print fcall 

令我困惑的是 global x2 行。有了它,该函数工作正常,按预期返回 60,但没有它,我收到一条错误消息:

赋值前引用的局部变量“x2”

为什么会这样? 似乎一旦 n 达到 3 的值,并且 else 条件被执行,它不知道 x2 是什么是吗?