小小问题之列表
编写一个将十进制转换为二进制的函数,要求采用“除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()方法刚好相反,什么时候反过来了??? 在这步反过来的
while temp:
result += str(temp.pop() 冬雪雪冬 发表于 2020-2-12 10:46
在这步反过来的
while temp:
result += str(temp.pop()
弱弱的问下在函数里面是上一个while结束了再执行第二个while吗? N95 发表于 2020-2-12 10:48
弱弱的问下在函数里面是上一个while结束了再执行第二个while吗?
是的 冬雪雪冬 发表于 2020-2-12 10:50
是的
那这步while temp:
result += str(temp.pop())
是怎么把他反过来的呢??也没用reverse呀 pop弹出最后一个,把它加到result的前面,不如temp是
先pop出1,result变成1
再pop出2,result变成12
。。。。。。 本帖最后由 _2_ 于 2020-2-12 11:17 编辑
冬雪雪冬 发表于 2020-2-12 10:56
pop弹出最后一个,把它加到result的前面,不如temp是
先pop出1,result变成1
再pop出2,result ...
补充一点,
经过实测,list.pop() 方法是从列表末尾开始弹出元素的(不指定参数的情况下):
>>> list1 = #列表中的元素与下标相等,方便演示
>>> list1.pop()#list1[-1]
9
>>>
定义如下:
list.pop(self,index=-1,/)
页:
[1]