错误太多了。
1、shang的初始值不应该是0,应该是num,然后每次循环时减少一位
2、while循环的条件怎么可能是shang==1,这样的话如何进入循环?
3、列表最开始为空,根本没有元素,怎么可能使用赋值语句,应该使用insert插入语句
4、直接在循环中将每一位都插入到列表中,何必在循环结束之后再写一句呢。。。def change(num):
liebiao=[ ]
i=0
shang=num #这里shang的初始值怎么能是0呢。
while shang: #这里的循环条件为什么是shang==1?那样怎么进入循环?
liebiao.insert(0,num%2) #取余,这里一个是列表的插入操作而非赋值,因为刚开始列表为空
shang=num//2 #取商
num=shang
i=i+1
#liebiao[i]=1 #因为循环当shang=1时就结束了,而商为1时,也就是二进制的最高位是1
return(liebiao)
number=int(input('enter a numner:'))
result=change(number)
print(str(result))
|