有很多帖子有类似的问题,但即使看完它们,我也无法理解背后的逻辑。对不起,我以前从未编程过。下面是两段代码——用于计算阶乘的递归函数。无论我传递 1 还是任何值,都会出现错误“赋值前引用的局部变量‘f’”。
def func(n):
if n != 1:
f = n*func(n-1)
else:
return f
但是,当我将代码更改为:
def func(n):
if n == 1:
return 1
else:
f = n*func(n-1)
return f
没有错误,程序运行。在这两种情况下,我都没有在分配之前初始化变量“f”,并且两者都只是函数的局部变量。只是想弄清楚我的基本概念。谢谢。
心有法竹
HUWWW
相关分类