鱼C论坛

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

python第023,024讲课后题

[复制链接]
发表于 2016-11-29 10:57:07 | 显示全部楼层 |阅读模式
1鱼币
def Dec2Bin(dec):
    result = ''
   
    if dec:
        result = Dec2Bin(dec//2)
        return result + str(dec%2)
    else:
        return result

print(Dec2Bin(62))
请问下def下的result和if下的result是一样吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-29 10:57:08 | 显示全部楼层
cuizihan2359 发表于 2016-11-29 14:58
麻烦下给我说下运行步骤可以吗,谢谢
  1. def Dec2Bin(dec):                    #定义一个十进制转换二进制的方法
  2.     str1 = ''                        #定义一个字符串
  3.    
  4.     if dec:                          #如果十进制数不等于0的话执行以下步骤
  5.         result = Dec2Bin(dec//2)     #利用递归函数传入值为除2的商
  6.         return result + str(dec%2)   #返回这个递归函数金额除二的余数
  7.     else:
  8.         return str1                  #当商为0时,返回字符串

  9. print(Dec2Bin(8))                    # 8 != 0
  10.                                      # result = Dec2Bin(4)
  11.                                      # 返回 Dec2Bin(4)+‘0’
  12.                                     
  13.                                      # 4 != 0
  14.                                      # result = Dec2Bin(2)
  15.                                      # 返回 Dec2Bin(2)+‘0’

  16.                                      # 2 != 0
  17.                                      # result = Dec2Bin(1)
  18.                                      # 返回 Dec2Bin(1)+‘0’

  19.                                      # 1 != 0
  20.                                      # result = Dec2Bin(0)
  21.                                      # 返回 Dec2Bin(0)+‘1’

  22.                                      # 0 == 0
  23.                                      # 返回一个空的字符串

  24.                                      #左后输出的就是‘’+‘1’+‘0’+‘0’+‘0’
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-29 11:33:50 | 显示全部楼层
本帖最后由 小茗同学 于 2016-11-29 11:35 编辑

不是一个rusult,
def下的result是一个字符串而if下的是一个函数
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-29 11:39:04 | 显示全部楼层
  1. def Dec2Bin(dec):
  2.     str1 = ''
  3.    
  4.     if dec:
  5.         result = Dec2Bin(dec//2)
  6.         return result + str(dec%2)
  7.     else:
  8.         return str1

  9. print(Dec2Bin(8))
复制代码

这样就可以证明不是同一个变量
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-11-29 14:58:05 | 显示全部楼层
小茗同学 发表于 2016-11-29 11:39
这样就可以证明不是同一个变量

麻烦下给我说下运行步骤可以吗,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-11-29 15:30:51 | 显示全部楼层
小茗同学 发表于 2016-11-29 11:39
这样就可以证明不是同一个变量

再问一下if下的result是个什么函数, result = Dec2Bin(dec//2)这句话什么意思,不是赋值给result?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-29 15:39:24 | 显示全部楼层
cuizihan2359 发表于 2016-11-29 15:30
再问一下if下的result是个什么函数, result = Dec2Bin(dec//2)这句话什么意思,不是赋值给result?

就是调用你自己def后定义的那个函数,就是迭代函数
result = Dec2Bin(dec//2)就是在函数中调用自己
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-11-29 15:54:38 | 显示全部楼层
小茗同学 发表于 2016-11-29 15:39
就是调用你自己def后定义的那个函数,就是迭代函数
result = Dec2Bin(dec//2)就是在函数中调用自己

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-24 05:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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