你这个手动运行程序有问题啊
你说的1和2是对的。3的最后不对
执行print(Dec2Bin(2))
1.首先dec=2,第一次进入Dec2Bin函数,result为空,然后进入if dec的条件分支,执行result = Dec2Bin(dec//2),2//2=1,再次调用Dec2Bin函数;
2.dec=1,第二次进入Dec2Bin函数,result仍为空,然后进入if dec的条件分支,执行result = Dec2Bin(dec//2),1//2=0,再次调用Dec2Bin函数;
3.dec=0,第三次进入Dec2Bin函数,result仍为空,然后进入else的条件分支,执行 return result,result为空,返回空字符串;
4.返回到第三次调用 Dec2Bin 的位置,也就是第二次调用时的if分支中,result='',然后执行if分支中的第二句 return result + str(dec % 2),这里 result + str(dec % 2)=''+'1', 返回字符串 '1'
5.返回到第二次调用 Ded2Bin 的位置,也就是第一次调用时的if分支中,result='1',然后执行if分支中的第二句 return result + str(dec % 2),这里 result + str(dec % 2)='1'+'0', 返回字符串 '10'
返回到print处,print('10'), 打印出10
调用函数要有去有回,你分析的只有去调用函数,调用之后不回去了,那怎么可能对啊