递归十进制转二进制
def binary(dec):if dec == 1:
return 1
else:
yushu = dec % 2
return binary(dec // 2),yushu
dec = int(input('输入需要转为二进制的十进制数'))
result = binary(dec)
print('0b',result)
声明dec = 4
结果:0b ((1, 0), 0),他这里虽然显示了正确的二进制数值,但是它是以一个元组的类型返回的,我不想这样,我想让他是一个字符串的或者int的类型返回
再问一个题外的,请问我这样写间接的修改元组吗
a = (1,2,3)
>>> b = list(a)
>>> b.append(4)
>>> a = tuple(b)
>>> a
(1, 2, 3, 4)
>>> 你的程序else中的return有很大的问题,每递归一次元组就套一层,当数比较大的时候,那返回值就会让人眼花缭乱了。
帮你改成返回字符串了
def binary(dec):
result=''
if dec <= 1:
return str(dec)
else:
yushu = dec % 2
return binary(dec // 2)+str(yushu)
dec = int(input('输入需要转为二进制的十进制数'))
result = binary(dec)
print('0b'+result)
再问一个题外的,请问我这样写间接的修改元组吗
是的
页:
[1]