鱼C论坛

 找回密码
 立即注册
查看: 1165|回复: 6

[已解决]零基础python 24递归课后作业

[复制链接]
发表于 2019-11-29 11:25:40 | 显示全部楼层 |阅读模式

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

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

x
作业要求:写一个函数get_digits(n),将参数n分解出每个位的数字并按顺序存放到列表中。举例:get_digits(12345) ==> [1, 2, 3, 4, 5]

  1. result = []
  2. def get_digits(n):
  3.         if n > 0:
  4.                 result.insert(0, n%10)
  5.                 get_digits(n//10)
  6.         return result #和答案相比,我返回了result

  7. print(get_digits(12345))
复制代码


输出结果是:[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]

问题:1.不太明白是哪里导致函数重复运行了一次  2.往列表里添加元素,不受到函数作用域的限制嘛?比如函数内想改变外部变量的值需要先申明它是全局变量,但是列表内添加值就可以直接添加?
最佳答案
2019-11-29 15:05:27
是的,如果是可变数据类型,比如容器类,函数内部也是可以调用全局变量的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-29 15:05:27 | 显示全部楼层    本楼为最佳答案   
是的,如果是可变数据类型,比如容器类,函数内部也是可以调用全局变量的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-29 22:16:20 | 显示全部楼层
怀心抱素 发表于 2019-11-29 15:05
是的,如果是可变数据类型,比如容器类,函数内部也是可以调用全局变量的

谢谢!有时间的话,也帮我看看上面的代码问题在哪叭
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-29 22:47:33 | 显示全部楼层
我运行的是正确的啊,vscode。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2019-11-30 09:34:47 | 显示全部楼层
yuyanng 发表于 2019-11-29 22:16
谢谢!有时间的话,也帮我看看上面的代码问题在哪叭

代码结果是正确的,你再试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-30 15:10:08 | 显示全部楼层
怀心抱素 发表于 2019-11-30 09:34
代码结果是正确的,你再试试

好的,现在对了,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-30 15:12:04 | 显示全部楼层
MyWifeDF41 发表于 2019-11-29 22:47
我运行的是正确的啊,vscode。

好的,现在对了,可能跟我图省事直接打在交互模式中有关,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 19:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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