不弃_ 发表于 2022-2-9 14:17:35

不太懂函数调用

调用函数会导致主函数停止运行吗?例如函数调用本身
def Dec2Bin(dec):#如果dec = 6

    result = ''
   
    if dec:
      result = Dec2Bin(dec//2)#这句执行后下句什么时候执行
      return result + str(dec%2)
    else:
      return result

print(Dec2Bin(62))

python爱好者. 发表于 2022-2-9 14:20:35

调用函数本身就是递归,
当然,你的脑子是不可能推算出它的过程的,所以你只要相信你的代码就行了!{:10_256:}

python爱好者. 发表于 2022-2-9 14:22:46

不会导致主函数停止呀

Twilight6 发表于 2022-2-9 14:47:53


函数调用自身叫递归,主函数不可能会停止运行的,如果主函数都停止运行了,那么何来子函数的运行?

举个例子:你递归过程相当于打开与原文件夹同名的子文件夹,你打开一层一层的子文件夹

那最外面的文件夹就相当于此时的主函数,你现在只是进入了主文件夹的内部去运行子文件夹,但是你能所你已经退出根文件夹了嘛?

如果不清楚递归调用,可以去 DeBug 看下函数的运行过程,PyCharm、Vscode 等支持,很方便快捷,又容易理解

白two 发表于 2022-2-9 16:23:20

帝龟有点类似深度优先, 先不断的深入一层, 直到有确切的返回值, 再每一层返回,
所以它的下一句会等到帝龟到最后一层, 再返回到这一层去执行

不弃_ 发表于 2022-2-9 16:45:17

Twilight6 发表于 2022-2-9 14:47
函数调用自身叫递归,主函数不可能会停止运行的,如果主函数都停止运行了,那么何来子函数的运行?

举 ...

如果吧 result = Dec2Bin(dec//2)return result +str(dec%2)   换成returnDec2Bin(dec//2)+ str(dec%2)我就理解了{:5_109:}
页: [1]
查看完整版本: 不太懂函数调用