鱼C论坛

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

[已解决]小小问题之列表

[复制链接]
发表于 2020-2-12 10:43:04 | 显示全部楼层 |阅读模式

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

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

x
编写一个将十进制转换为二进制的函数,要求采用“除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))



temp中的元素用append方法增加时应该是放在上一个元素之后哒,那打印temp时也应该按顺序打印啊,可按顺序打印就和bin()方法刚好相反,什么时候反过来了???
最佳答案
2020-2-12 10:56:47
pop弹出最后一个,把它加到result的前面,不如temp是[4,3,2,1]
先pop出1,result变成1
再pop出2,result变成12
。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-12 10:46:36 | 显示全部楼层
在这步反过来的
    while temp:
        result += str(temp.pop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-12 10:48:31 | 显示全部楼层
冬雪雪冬 发表于 2020-2-12 10:46
在这步反过来的
    while temp:
        result += str(temp.pop()

弱弱的问下在函数里面是上一个while结束了再执行第二个while吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-12 10:50:29 | 显示全部楼层
N95 发表于 2020-2-12 10:48
弱弱的问下在函数里面是上一个while结束了再执行第二个while吗?

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

使用道具 举报

 楼主| 发表于 2020-2-12 10:52:36 | 显示全部楼层

那这步while temp:
        result += str(temp.pop())
是怎么把他反过来的呢??也没用reverse呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-12 10:56:47 | 显示全部楼层    本楼为最佳答案   
pop弹出最后一个,把它加到result的前面,不如temp是[4,3,2,1]
先pop出1,result变成1
再pop出2,result变成12
。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-12 11:16:17 | 显示全部楼层
本帖最后由 _2_ 于 2020-2-12 11:17 编辑
冬雪雪冬 发表于 2020-2-12 10:56
pop弹出最后一个,把它加到result的前面,不如temp是[4,3,2,1]
先pop出1,result变成1
再pop出2,result ...


补充一点,
经过实测,list.pop() 方法是从列表末尾开始弹出元素的(不指定参数的情况下):
>>> list1 = [0,1,2,3,4,5,6,7,8,9]  #列表中的元素与下标相等,方便演示
>>> list1.pop()  #list1[-1]
9
>>> 

定义如下:
list.pop(self,index=-1,/)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 05:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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