啊鹏 发表于 2020-7-3 22:30:59

请问while temp这一句是啥意思?

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))

while temp:
      result += str(temp.pop()) 这个看不懂,在这个里面temp不是一个列表吗?怎么循环? 和字符串相加。。。第一次救助。

小甲鱼的铁粉 发表于 2020-7-3 22:43:33

就是判断temp是不是一个空列表,如果是空列表的话就不进入while循环,如果不是的话,就一直进行循环,把temp里面的元素从后往前的顺序给result

Twilight6 发表于 2020-7-3 22:47:56

本帖最后由 Twilight6 于 2020-7-3 23:00 编辑




while temp:
      result += str(temp.pop()) 这个看不懂,在这个里面temp不是一个列表吗?怎么循环? 和字符串相加。。。第一次救助。

temp 确实是列表,while 是叫做叫做条件循环,而不是遍历循环,遍历循环是使用 for 循环才是循环列表中的元素

Python 中只要数值为 0、None、空列表、空字符串、空字典等条件都可以视为为布尔类型值的 False

只要非 0、非空字典、非空字符串、非空字典、非空列表等都可以视为布尔类型值的 True

所以你这里 while temp ,只要 temp 不为空列表,那么循环就会一直进行下去

而 temp 列表里面装的是你上一个循环过程中算出的余数,而 pop() 方法,就是将列表的最后一个数给拿出来

余数从temp列表拿出来是整型,不能和字符串进行 + 法拼接,所以要加上 str 转为字符串进行拼接

直到列表的元素全部被拿出来,列表为空,导致条件为False,不满足 while 循环条件 即退出循环






苏沫儿 发表于 2020-7-4 09:20:02

小甲鱼的铁粉 发表于 2020-7-3 22:43
就是判断temp是不是一个空列表,如果是空列表的话就不进入while循环,如果不是的话,就一直进行循环,把tem ...

小改改好活跃哦

小甲鱼的铁粉 发表于 2020-7-4 09:23:09

苏沫儿 发表于 2020-7-4 09:20
小改改好活跃哦

{:10_297:}

鱼尾纹888 发表于 2021-8-2 20:40:45

Twilight6 发表于 2020-7-3 22:47
temp 确实是列表,while 是叫做叫做条件循环,而不是遍历循环,遍历循环是使用 for 循环才是循环 ...

这里并没有定义temp=temp.pop(),只定义了result,怎么就能关联上呢?求助

Twilight6 发表于 2021-8-2 20:49:11

鱼尾纹888 发表于 2021-8-2 20:40
这里并没有定义temp=temp.pop(),只定义了result,怎么就能关联上呢?求助


看看这行代码:

result += str(temp.pop())

鱼尾纹888 发表于 2021-8-2 21:18:23

Twilight6 发表于 2021-8-2 20:49
看看这行代码:

result += str(temp.pop())

试验了一下,理解了,temp.pop()就能返回一个少最后一个元素的新temp,谢谢!
页: [1]
查看完整版本: 请问while temp这一句是啥意思?