鱼C论坛

 找回密码
 立即注册
查看: 1285|回复: 4

这个代码我咋感觉不能循环啊 if 一步不就结束了吗 而且递归为啥没返回啊

[复制链接]
发表于 2020-6-29 17:27:38 | 显示全部楼层 |阅读模式

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

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

x
result = []

def get_digits(n):

        if n > 0:

                result.insert(0, n%10)

                get_digits(n//10)



get_digits(12345)

print(result)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-29 17:30:19 | 显示全部楼层
result = []

def get_digits(n):

        if n > 0:

                result.append(n%10)

                get_digits(n//10)


get_digits(12345)

print(result)

你是想要这个效果嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-29 17:33:04 | 显示全部楼层
1,get_digits等于又会运行一次,也就是循环的效果。
2,因为向result列表里面插入了结果,所以没有返回值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-9 09:32:01 | 显示全部楼层
举个例子
get_digits(12345)
相当于
result.append(12345%10)
get_digits(1234)

上面那一行又相当于
result.append(1234%10)
get_digits(123)

上面那一行又相当于
result.append(123%10)
get_digits(12)

上面那一行又相当于
result.append(12%10)
get_digits(1)

上面那一行又相当于
result.append(12%10)
get_digits(0)

上面那一行中,n > 0为False,函数退出,终止循环,结果都在result列表中,所以没有返回值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-9 15:32:58 | 显示全部楼层
你加的result,在外部添加的,不需要返回值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 01:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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