hhjdsd 发表于 2020-3-25 14:06:23

作业中断,求助。。。

作业要求编写一个函数,达到跟bin一样的效果,我看半天也没看出我这代码有啥问题,求助。。{:10_254:}
def baseconversion(num1):
        num2 = 1
        while num2 >= 0:
                num2 = num1//2
                num3 = num1%2
                list1 = []
                list1.append(str(num3))
                if num2 != 0:
                        num1 = num2
                        continue
                else:
                        str1 = ''
                        for i in list1:
                                str1 += i
                                print(str1)
                                continue
                break

       
>>> baseconversion(5)
1{:10_266:} {:10_266:}

Hoiste 发表于 2020-3-25 14:18:47

你把list1 = []放在了while循环里面,那么每次循环都会把列表清空,最终只放最后一次循环时加入列表里的那个值,其他都没了。

yexing 发表于 2020-3-25 14:19:47

本帖最后由 yexing 于 2020-3-25 14:22 编辑

def baseconversion(num1):
    num2 = num1
    list1 = []
    while num2 > 0:
      num3 = num2%2
      num2 = num2//2
      list1.append(str(num3))
    list1.append('0')
    str1 = ""
    for i in list1:
      str1 += i
    str1 = str1.zfill(8)
    return str1

qiuyouzhi 发表于 2020-3-25 14:21:33

把list1放到外面,不然每次循环都会被清空
BTW:列表,字典什么的是没有局部全局这一说的(除非同名)!
页: [1]
查看完整版本: 作业中断,求助。。。