十进制转2进制递归代码求解?
def dec2bin(x):list1 = []
if not x:
for i in range(len(list1)):
print(list1,end = '')
return list1
else:
list1.append(x%2)
return dec2bin(x//2)
dec2bin(123)
想知道哪里出了问题,每次把余数扩展到列表里,直到x为零时,打印列表的值,但是每次打印的 都是空列表,想知道该怎么改? list1相当于在函数中是全局变量,每次递归都会产生新的列表 list1
来屏蔽外部的全局变量 list1 ,然后你append 是加入局部的变量,而不是原本的全局变量列表 本帖最后由 Twilight6 于 2020-6-7 09:12 编辑
list1 = []
def dec2bin(x):
if not x:
for i in range(len(list1)):
print(list1[::-1], end='')
return list1
else:
list1.append(x % 2)
return dec2bin(x // 2)
dec2bin(123) Twilight6 发表于 2020-6-7 09:10
把list设为全局变量呗,是这样吗? lingedu 发表于 2020-6-7 09:20
把list设为全局变量呗,是这样吗?
嗯记得要把列表颠倒
页:
[1]