bochong_chan 发表于 2020-10-30 20:50:04

零基础课后习题第17讲的最后一题动动手,有没有好心人帮忙详细讲解一下!万分感谢

2. 编写一个将十进制转换为二进制的函数,要求采用“除2取余”(补脑链接)的方式,结果与调用 bin() 一样返回字符串形式。
def Dec2Bin(dec):
    temp = []
    result = ''

    while dec:
      quo = dec % 2
      dec = dec // 2
      temp.append(quo)

    while temp:
      result += str(temp.pop())

    return result

print(Dec2Bin(62))

笨鸟学飞 发表于 2020-10-30 21:15:19

def Dec2Bin(dec):#2.定义函数,第1步的参数62复制给函数内变量dec
    temp = []      #3.初始化temp变量,类型为列表,值为空
    result = ''       #4.初始化变量,同3
    while dec:      #5.条件循环,当dec不等于0时进入循环,等于0时跳出循环
      quo = dec % 2   #6.把dec除以2的余数复制给quo变量
      dec = dec // 2    #7.把dec除以2得到的整数部分赋值给dec
      temp.append(quo)#8.把quo的值添加到列表temp。随后进入第5步判断是否进入循环,不进入则进入第9步,进入则继续第6步
    while temp:       #9.条件循环,temp不是空列表的时候,则进入循环,为空列表则跳出循环
      result += str(temp.pop()) #10.把result加temp列表的最后一个值的结果,赋值给result,同时删除temp列表的最后一个值。随后判断是否进入循环,进入则重复这步,否则进入第11步
    return result   #11.返回result,因此第1步实际上是把这里的result作为参数调用print()函数

print(Dec2Bin(62))#1.打印函数Dec2Bin(62)的返回值,即先把62作为参数调用Dec2Bin()函数,再把返回值作为参数调用print()函数打印
页: [1]
查看完整版本: 零基础课后习题第17讲的最后一题动动手,有没有好心人帮忙详细讲解一下!万分感谢