为啥我这个他说没有使用局部变量
def lsp(n):n1 = 1
n2 = 1
if n <= 2:
print("n = 1")
else:
for i in range(3, n+1):
n3 = n1 +n2
n2 = n3
n1 = n2#就是这个n1 没有使用 局部变量
return n3
print(lsp(5))
是第24讲的斐波那契数列结果输出应该为5 本帖最后由 Hoiste 于 2021-4-15 15:33 编辑
虽然不知道你在问啥,不过代码几个问题还是能够跟你说下,
1、n2 = n3
n1 = n2这一段最终结果会变成n1 = n2,应该改成n1,n2 = n2,n3这种形式
2、return的位置不对,函数遇到return直接就返回结果并结束了,所以不会继续执行for循环的第二次循环,需要把return放到循环体外面去。
修改之后:
def lsp(n):
n1 = 1
n2 = 1
if n <= 2:
print("n = 1")
else:
for i in range(3, n+1):
n3 = n1 +n2
n1,n2 = n2,n3
return n3
print(lsp(5))
Hoiste 发表于 2021-4-15 15:32
虽然不知道你在问啥,不过代码几个问题还是能够跟你说下,
1、n2 = n3
n1 = n2这一段最终结果会变成n1 =...
谢谢啊我回去调了一下 确实 感谢感谢
页:
[1]