鱼C论坛

 找回密码
 立即注册
查看: 2735|回复: 2

[新人报道] 为啥我这个他说没有使用局部变量

[复制链接]
发表于 2021-4-15 14:59:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-15 15:32:27 | 显示全部楼层
本帖最后由 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))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-4-15 18:53:45 | 显示全部楼层
Hoiste 发表于 2021-4-15 15:32
虽然不知道你在问啥,不过代码几个问题还是能够跟你说下,
1、n2 = n3
n1 = n2这一段最终结果会变成n1 =  ...

谢谢啊  我回去调了一下 确实 感谢感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-9 01:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表