零基础课后习题第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)) 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]