qq614704680 发表于 2020-1-19 10:16:06

0基础入门学习python 23、24讲课后作业

def Dec2Bin(dec):
    result = ''
   
    if dec:
      result = Dec2Bin(dec//2)
      return result + str(dec%2)
    else:
      return result

print(Dec2Bin(62))

这里的result分别代表什么东西,一直没看懂result + str(dec%2)是什么情况

f-wind 发表于 2020-1-19 10:45:42

字符串往后面加啊,转化为二进制,返回的字符串,模二取余

qq614704680 发表于 2020-1-19 10:54:36

f-wind 发表于 2020-1-19 10:45
字符串往后面加啊,转化为二进制,返回的字符串,模二取余

主要是 result = Dec2Bin(dec//2)对result赋值的不知道是不是字符串。。而且
if dec:
      result1 = Dec2Bin(dec//2)
      return result1 + str(dec%2)
也是可以的,所以这里的result和一开始定义的result好像不是一个东西,然后我想来想去,头就炸了

f-wind 发表于 2020-1-19 11:22:57

你这个if还要联系后面的else一起看,这个result的确跟一开始定义的不是一个,下面else才是同一个

qq614704680 发表于 2020-1-19 11:34:10

f-wind 发表于 2020-1-19 11:22
你这个if还要联系后面的else一起看,这个result的确跟一开始定义的不是一个,下面else才是同一个

result = Dec2Bin(dec//2)
return result + str(dec%2)
这里的result = Dec2Bin(dec//2),难道result不是Dec2Bin(dec//2)回溯的结果吗。。。。

qq614704680 发表于 2020-1-19 11:51:01

qq614704680 发表于 2020-1-19 11:34
result = Dec2Bin(dec//2)
return result + str(dec%2)
这里的result = Dec2Bin(dec//2),难道result不 ...

。。想明白了
result = Dec2Bin(dec//2)这里的result是递归结束时返回的结果。。
回溯时在str(dec%2)里面回溯的。。。
谢啦!

wanのcc 发表于 2021-4-6 20:48:22

return result + str(dec%2)
result 是一开始的字符串?还是新建的(同名)?
页: [1]
查看完整版本: 0基础入门学习python 23、24讲课后作业