我是 python(2.7.3)的新手,我试图编写一个将给定的十进制数转换为二进制数的程序。 为此,我编写了一个函数,它接受十进制数和一个空列表,将数字除以2将其余部分附加到列表中,并使用剩余商重复该函数,直到商为0。
def convert_to_bin(dec_num,list):
quo = dec_num/2 # val is the quotient when dividing by 2
rest = dec_num%2 # rest is the rest when dividing by 2
list.append(rest)
if (quo==0):
list.reverse()
print list
return list
else:
convert_to_bin(quo,list)
bin_list = [] # initialize list for binary entries
dec_num = 83 # decimal number that is to be converted into binary
bin_list = convert_to_bin(dec_num,bin_list)
print bin_list
到目前为止,该功能可以正常工作,我无法找到一种在调用函数之后实际返回列表的方法 - 而是总是得到"无& #34;作为退货声明。 我究竟做错了什么?任何帮助将不胜感激。
答案 0 :(得分:3)
您忘记返回递归调用的结果:
else:
return convert_to_bin(quo,list)
递归调用返回调用者,而不是顶级框架。因此,convert_to_bin()
函数再次调用convert_to_bin()
忽略了嵌套调用的返回值,而是在函数结束时返回None
。