17讲课后习题十进制转二进制,有点不理解求解释一下
print("十进制转二进制")def tansl(x):
list = []
number = ""
while x :
y = x%2
x= x//2
list.append(y)
while list:
number += str(list.pop())
return number
x = int(input("请输入一个正整数:"))
print(tansl(x))
假设x=10,求解释一下过程,特别是while list里面的,非常感谢 while x:
第一次x=10
while 10:#为真
y = 10%2 #y=0
x = 10//2#x=5
list.append(y)#list=
第二次
while 5: #为真
y = 5%2 #y=1
x = 5//2#x=2
list.append(y)#list=
第三次
while 2: #为真
y = 2%2 #y=0
x = 2//2#x=1
list.append(y)#list=
第四次
while 1: #为真
y = 1%2 #y=1
x = 1//2#x=0
list.append(y)#list=
第五次
while 0: #为假while 中断
list=
while list:
第一次:
while : #为真
number += str(list.pop()) #number = '1' list =
第二次
while : #为真
number += str(list.pop()) #number = '10' list =
第三次
while : #为真
number += str(list.pop()) #number = '101' list =
第四次
while : #为真
number += str(list.pop()) #number = '1010' list = []
第五次
while []: #为假,中断
返回number #number = '1010' 逃兵 发表于 2021-1-20 10:55
while x:
第一次x=10
while 10:#为真
感谢感谢,list.pop是从列表的最后一个开始删除的吗 SomeThing9 发表于 2021-1-20 10:58
感谢感谢,list.pop是从列表的最后一个开始删除的吗
list.pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
括号里面是可选参数,不填的话默认为最后一位,list.pop(0)的话就是第一位了 逃兵 发表于 2021-1-20 11:02
list.pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
括号里面是可 ...
好的谢谢大佬,非常感谢
页:
[1]