鱼C论坛

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

[已解决]关于递归的问题。

[复制链接]
发表于 2017-5-13 00:27:01 | 显示全部楼层 |阅读模式

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

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

x
第23,24课后作业:
一:
def Dec2Bin(dec):
    result = ''
   
    if dec:
        result = Dec2Bin(dec//2)
        return result + str(dec%2)
    else:
        return result

print(Dec2Bin(62))
二:
result = []
def get_digits(n):
        if n > 0:
                result.insert(0, n%10)
                get_digits(n//10)

get_digits(12345)
print(result)
二的result=[] 移到函数内,每一次递归都会重新定义为空列表。为何一中的 result每一次递归不会被重新定义为空字符串?



最佳答案
2017-5-13 09:41:52
以后代码这样发
“一”代码每一次递归result都会重新定义为空字符,在result = ''下加上print()
    result = ''
    print(result)
会出现结果:
>>> 
============== RESTART: C:\Users\Tony\OneDrive\文档\practice\1.py ==============







111110
>>> 
递归结果是由Dec2Bin(dec//2)完成的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-5-13 09:41:52 | 显示全部楼层    本楼为最佳答案   
以后代码这样发
“一”代码每一次递归result都会重新定义为空字符,在result = ''下加上print()
    result = ''
    print(result)
会出现结果:
>>> 
============== RESTART: C:\Users\Tony\OneDrive\文档\practice\1.py ==============







111110
>>> 
递归结果是由Dec2Bin(dec//2)完成的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-13 15:46:13 | 显示全部楼层
当回首遇上转身 发表于 2017-5-13 09:41
“一”代码每一次递归result都会重新定义为空字符,在result = ''下加上print()

会出现结果:

一我能理解 ,  我疑问的是  把二中的 result=[]移到函数内部运行结果为何是一个空列表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-13 15:48:10 | 显示全部楼层
yongxi 发表于 2017-5-13 15:46
一我能理解 ,  我疑问的是  把二中的 result=[]移到函数内部运行结果为何是一个空列表

自己想明白了。   感谢回答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-27 20:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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