最新的购物网站 开,wordpress 网址,网站建设空白栏目整改报告,it培训班1 Python自学 - 递归函数 递归函数是一种在函数体内调用自己的函数#xff0c;就像“左脚踩着右脚#xff0c;再右脚踩着左脚… 嗯#xff0c;你就可以上天了#xff01;”。递归函数虽然不能上天#xff0c;但在处理某些场景时非常好用#xff0c; 一种典型的场景就是遍…1 Python自学 - 递归函数 递归函数是一种在函数体内调用自己的函数就像“左脚踩着右脚再右脚踩着左脚… 嗯你就可以上天了”。递归函数虽然不能上天但在处理某些场景时非常好用 一种典型的场景就是遍历目录。 由于递归使用不当时会产生死循环为了保护程序不发生死循环Python对递归的最大次数进行了限制通过getrecursionlimit()函数可以查看当前设置的最大递归次数。
from sys import getrecursionlimit
print(getrecursionlimit()) #输出1000注如果对递归的最大次数不满意可以使用setrecursionlimit函数设置最大递归次数。
示例1 使用递归函数计算阶乘 阶乘是数学里一个很常见的计算一个数的阶乘是所有小于及等于该数的正整数的积比如3的阶乘是3*2*1 5的阶乘是5*4*3*2*1. 在数学中阶乘计算符是“” 阶乘的结果会放大很多倍一般的计算器计算阶乘到69就会造成数字溢出有些高端一点的计算器最大可以计算150的阶乘。可见阶乘的放大系数很大。 普通人能接触到的阶乘在日常生活中的应用就是排列组合 比如小学常考的试题给出123共3个数字可以组成多少个3位数 下面是阶乘的代码实现
def fact(n):return 1 if n 1 else n * fact(n - 1)print(fact(5)) #输出120注读者如果还记得Python自学 - 条件语句中的内容话会知道上面fact函数中使用三元操作符
另一种形式的阶乘代码
def fact(n):if n 1:return 1else:return n * fact(n - 1)print(fact(5)) #输出120递归还有一个很典型的场景就是遍历目录列出所有子文件夹中的文件及目录关于这块的代码读者可以在网上搜索有大量现成的代码可供参考。 作者声明本文用于记录和分享作者的学习心得水平有限难免存在表达错误欢迎交流和指教 Copyright © 2022~2024 All rights reserved.