|
发表于 2020-3-18 23:56:14
|
显示全部楼层
错误太多了。
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))
复制代码 |
|