鱼C论坛

 找回密码
 立即注册
查看: 1663|回复: 7

请问这两个程序有什么区别,看了一下午,实在找不出来。

[复制链接]
发表于 2021-8-19 20:20:04 | 显示全部楼层 |阅读模式

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

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

x
第一个:
lists = []
def get_digits(n):

    if n>0:
        get_digits(n // 10)
        lists.append(n % 10)
        return lists
    else:
        return lists
   
print(get_digits(12345))

第二个:
lists = []
def get_digits(n):

    if n>0:
        get_digits(n // 10)
        
        return lists.append(n % 10)
    else:
        return lists
   
print(get_digits(12345))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-8-19 20:20:51 | 显示全部楼层
这是关于递归的知识
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-19 20:25:29 | 显示全部楼层
就是写在一起,但顺序会变
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-19 20:26:18 | 显示全部楼层
        lists.append(n % 10)

列表方法是作用于列表本身的,会返回None

所以这里不能写

        return lists.append(n % 10)

而要写
        lists.append(n % 10)
        return lists
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-19 21:33:13 | 显示全部楼层
本帖最后由 ch1161741637 于 2021-8-19 21:34 编辑
逃兵 发表于 2021-8-19 20:26
lists.append(n % 10)

列表方法是作用于列表本身的,会返回None


我把每次的迭代都打印出来了,前四次迭代都正常【1,2,3,4】,但最后一次输出列表为什么是none,能解释的再详细点吗?万分感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-19 22:18:05 | 显示全部楼层
本帖最后由 大马强 于 2021-8-19 22:37 编辑
ch1161741637 发表于 2021-8-19 21:33
我把每次的迭代都打印出来了,前四次迭代都正常【1,2,3,4】,但最后一次输出列表为什么是none,能解释 ...

这就涉及到了函数的返回值问题
这时候你肯定再想,我这个get_digits 不是有返回值lists.append(n % 10)吗?
但你再想一想 列表函数append的返回值是啥?
答案如同楼上大佬都说的,列表的append方法是没有任何返回的
你可以尝试这段代码
print(lists.append(1))
结果是 none
这就证明了 列表的append无返回值
所以你外面的print接受了个空气,就打印了none
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-8-21 15:27:28 | 显示全部楼层
大马强 发表于 2021-8-19 22:18
这就涉及到了函数的返回值问题
这时候你肯定再想,我这个get_digits 不是有返回值lists.append(n % 10) ...

明白了,append操作的确无返回值,所以return当然没有东西,谢谢哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-21 16:56:09 | 显示全部楼层
ch1161741637 发表于 2021-8-21 15:27
明白了,append操作的确无返回值,所以return当然没有东西,谢谢哈


不客气
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-13 13:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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