鱼C论坛

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

pythom 023,024 讲第一个课后题

[复制链接]
发表于 2016-9-9 13:19:14 | 显示全部楼层 |阅读模式
10鱼币
本帖最后由 wow7jiao 于 2016-9-9 13:21 编辑

def Dec2Bin(dec):
    result = ''
   
    if dec:
        result = Dec2Bin(dec//2)
        return result + str(dec%2)
    else:
        return result

print(Dec2Bin(62))

result = Dec2Bin(dec//2)  #result 不应该数字吗?怎么变成了字符
result +str(dec%2)


result = '' 循环会清0吗

最佳答案

查看完整内容

注意定义函数的时候,第一行,result='',这一步就是初始值就是字符。 看我打印的如下帮助你理解的:
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-9 13:19:15 | 显示全部楼层
注意定义函数的时候,第一行,result='',这一步就是初始值就是字符。
看我打印的如下帮助你理解的:

                               
登录/注册后可看大图

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-9 14:58:50 | 显示全部楼层
首先,将result变量定义为字符串是方便最终取余数的0和1直接组合。如果定义为数字很难办到。
其次,result是局部变量,每次调用这个函数,都会清零。我的理解是每次调用,这个result和之前的result不同了,只是名字相同而已,实际上Dec2Bin(dec)返回Dec2Bin(dec//2)+str(dec%2),result只是方便一个容器。
最后,在else后表示如果用辗转相除法商为0,则返回空字符串,不在从最终的商取二进制。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-9-9 17:25:23 | 显示全部楼层
不平凡的小人物 发表于 2016-9-9 14:58
首先,将result变量定义为字符串是方便最终取余数的0和1直接组合。如果定义为数字很难办到。
其次,result ...

result = ‘’  是不是可以把数字转换成字符?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-11 19:57:36 | 显示全部楼层
wow7jiao 发表于 2016-9-9 17:25
result = ‘’  是不是可以把数字转换成字符?

严格意义上,把数字转成字符是str(dec%2)的作业,但是result还是起到了一定的作业。分析定义的Dec2Bin(dec)函数中的if语句,return返回值都是字符串,里面是原始result=''以及  result = Dec2Bin(dec//2)
        return result + str(dec%2)的共同作业。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-9-11 23:07:13 | 显示全部楼层
  result = Dec2Bin(dec//2)#resule先是数字
   return result + str(dec%2)#是一个数字加一个字符串返回,为什么不报错,我想写成   return str(result) + str(dec%2)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-12 10:00:32 | 显示全部楼层
嗯嗯
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-22 16:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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