本帖最后由 sunrise085 于 2020-10-24 22:49 编辑
因为append函数是无返回值的,你一直是对列表t进行的操作,但是却返回tup。。。
2.标红处tup显示的错误是局部变量tup在赋值之前被引用是什么意思(Local variable 'tup' might be referenced before assignment)?
这个是因为当x为0的时候,不会进入while循环,那么tup就没有定义过,直接return tup 就会报错
你的程序中用的是255,看不出来顺序是反的,我改成25了
你的程序直接在函数中返回列表t即可。但是可能不是你想要的,因为顺序是反着的而且不是字符串
- def bin1(x):
- t = []
- while x:
- r = x % 2
- x = x // 2
- t.append(r)
- return t
- print(bin1(25))
复制代码
要想把顺序正过来,就把append改为insert
- def bin1(x):
- t = []
- while x:
- r = x % 2
- x = x // 2
- t.insert(0,r)
- return t
- print(bin1(25))
复制代码
要想直接返回字符串,那就不要用列表啦,直接用字符串操作
- def bin1(x):
- tup=''
- while x:
- r = x % 2
- x = x // 2
- tup=str(r)+tup
- return tup
- print(bin1(25))
复制代码