鱼C论坛

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

[已解决]第17讲 动动手疑惑

[复制链接]
发表于 2018-5-6 22:58:28 | 显示全部楼层 |阅读模式

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

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

x
十进制换二进制的问题:
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))

没太看懂result += str(temp.pop()),因为要转换为字符串,那么temp.pop(),删除最后一个元素的意思是什么?
最佳答案
2018-5-7 11:40:46
hi 原因如下(以20为例):



  1. def Dec2Bin(dec):   #1. 用户输入Dec2Bin(20)
  2.     temp = []
  3.     result = ''
  4.    
  5.     while dec:
  6.         quo = dec % 2     
  7.         dec = dec // 2
  8.         temp.append(quo)
  9. # 2. while循环结束后,temp的值是 [0, 0, 1, 0, 1] ;而我们需要的是10100 ,因此需要通过list pop()方法从后向前将元素弹出来 再 组合

  10.     while temp:
  11.         result += str(temp.pop()) #3.通过 pop()方法从后向前将元素弹出来 再 组合,从而得到10100
  12.    
  13.     return result

  14. print(Dec2Bin(20))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-6 23:02:00 | 显示全部楼层
二进制不然是反的,所以要从后边挤
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-7 00:07:38 | 显示全部楼层
本帖最后由 1239890175 于 2018-5-7 01:12 编辑

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-7 00:13:19 | 显示全部楼层
while 这个循环。循环列表,列表里面有元素的话相当于永真循环,.pop()是删除最后一个元素,print list.pop()是显示并删除最后一个元素,这个10转2是除基倒取余,.pop()删除完以后就结束循环了------python小学生
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-7 11:40:46 | 显示全部楼层    本楼为最佳答案   
hi 原因如下(以20为例):



  1. def Dec2Bin(dec):   #1. 用户输入Dec2Bin(20)
  2.     temp = []
  3.     result = ''
  4.    
  5.     while dec:
  6.         quo = dec % 2     
  7.         dec = dec // 2
  8.         temp.append(quo)
  9. # 2. while循环结束后,temp的值是 [0, 0, 1, 0, 1] ;而我们需要的是10100 ,因此需要通过list pop()方法从后向前将元素弹出来 再 组合

  10.     while temp:
  11.         result += str(temp.pop()) #3.通过 pop()方法从后向前将元素弹出来 再 组合,从而得到10100
  12.    
  13.     return result

  14. print(Dec2Bin(20))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-8 16:11:07 | 显示全部楼层
thexiosi 发表于 2018-5-7 11:40
hi 原因如下(以20为例):

好赞!每次都能一下就给我讲清楚!不过突然想问,如果我希望从前到后提取呢?这个怎么实现?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-8 16:59:43 | 显示全部楼层
AquamanZ 发表于 2018-5-8 16:11
好赞!每次都能一下就给我讲清楚!不过突然想问,如果我希望从前到后提取呢?这个怎么实现?

不好意思,这个不太清楚哈

建议初期 还是通过pop()方法 从后向前提取,这种方式最容易啦

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 13:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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