鱼C论坛

 找回密码
 立即注册
查看: 1904|回复: 3

递归中的全局变量与局部变量

[复制链接]
发表于 2020-3-9 20:49:48 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 zltzlt 于 2020-3-9 21:47 编辑
list2 = []
def get_digits(n):
    #list2 = []
    if n > 0:
        list2.insert(0,n%10)
        return get_digits(n//10)
    print(list2)

get_digits(562548)

为什么list2放在函数外作全局变量才有数据,而放在函数中,则输入是[]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-9 20:57:58 | 显示全部楼层
本帖最后由 Hoiste 于 2020-3-9 21:00 编辑

设付费是闹哪样
至于你的问题,如果列表放在里面,那就是这个函数的局部变量,意味着这个列表只在函数内有效。
而如果列表放在外面,则是全局变量,自然通过函数对列表的内容进行改变会改变外面的列表。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-9 21:11:11 | 显示全部楼层
因为只要一递归,列表就会被清空(重新来一遍list1= [])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-9 21:48:24 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-23 11:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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