关于python课后作业的提问
用递归 十进制转二进制,看了下答案,百度过 看得不是很理解,return result + str(dec%2) 这个地方不理解,地板除完之后为什么是从后面的Dec2Bin(1)开始算起?而不是一开始的Dec2Bin(10//2)地板除开始
课程链接:http://bbs.fishc.com/thread-44925-1-1.html
def Dec2Bin(dec):
result = ''
if dec:
result = Dec2Bin(dec//2)
return result + str(dec%2)
else:
return result
print(Dec2Bin(62))
{:10_266:}{:10_266:}{:10_266:} 卡在这里 不知道要不要先挑过这个 继续学习 温馨提醒。。别自己坐沙发,抢一楼。。我们都觉得有人回答。。这论坛,回答问题一般都选没有回复的
def Dec2Bin(dec):
result = ''
if dec:
result = Dec2Bin(dec//2)
return result + str(dec%2)
else:
return result
print(Dec2Bin(62))
程序运算是从Dec2Bin(62)开始运算的,但if 62: 是不是符合要求,执行if后面的喽,由于result=Dec2Bin(62//2),返回值又有result,实际就返回
Dec2Bin(62//2)+str(62%2),但Dec2Bin(62//2)未知,又可以计算,程序会默认算出Dec2Bin(62//2)的结果喽,就这样一层套一层,最后有直接结
果,result='',由下往上套return 不就算出Dec2Bin(62)了喽 ButcherRabbit 发表于 2017-6-1 15:35
温馨提醒。。别自己坐沙发,抢一楼。。我们都觉得有人回答。。这论坛,回答问题一般都选没有回复的
有点懂了 THX!
PS:之所以自己又回帖 是因为半天没人回,我怕被刷下去 就自己顶回来了{:5_92:}
页:
[1]