BYF雨 发表于 2020-4-2 18:31:12

十进制转二进制

请问如下代码中result += str(temp.pop())是什么作用呀?
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))

qiuyouzhi 发表于 2020-4-2 18:32:24

取出列表中的最后一个元素。
pop如果不给参数,默认弹出最后一个元素
(有返回值,返回值就是弹出来的元素)

zltzlt 发表于 2020-4-2 18:47:05

就是将 temp 中的元素拼接成一个字符串

Twilight6 发表于 2020-4-2 18:47:44

本帖最后由 Twilight6 于 2020-4-2 18:50 编辑

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

这里这个循环完temp = [ 0,1,1,1,1,1]

然后到while temp:
       result += str(temp.pop())
这个循环temp.pop() 每次拿出一个元素 ,括号里没填数值默认是拿出最后一个元素 ,拿出后转成字符串和result拼接
当这个循环结束 就拼接成了 result = '111110' 了

result +=str(temp.pop())   可以写成result=result + str(temp.pop())

小人物来了 发表于 2020-4-2 19:08:28

将 temp 中的元素拼接成一个字符串

BYF雨 发表于 2020-4-3 16:10:18

Twilight6 发表于 2020-4-2 18:47
这里这个循环完temp = [ 0,1,1,1,1,1]

然后到


明白了,非常感谢大家!
页: [1]
查看完整版本: 十进制转二进制