Python69:核心语法-函数进阶-案例1(递归)

N的阶乘

定义一个函数,根据传入的数字,计算该数字阶乘的结果。

n的阶乘公式:f(n) = n * f(n-1)

python 复制代码
#(错误编程案例)
# 案例1:计算n的阶乘
# 递归调用:指的是在函数中自己调用自己的情况
def jc(n):
    return n * jc(n - 1)

result = jc(10)
print(result)
"""
RecursionError: maximum recursion depth exceeded
递归错误:超出了最大的递归深度(递归调用自己的次数太多了)。
这个程序走到n-1=0,n=0, n=-1还会继续下去,没有终结。
"""
python 复制代码
# 案例1:计算n的阶乘
# 递归调用(先层层递进,再逐层回归):指的是在函数中自己调用自己的情况 --->一定得有终结点(如果没有终结点,会一直循环陷入死循环而报错)
"""
jc(10) = 10 * jc(9)
jc(9) = 9 * jc(8)
jc(8) = 8 * jc(7) # ctrl+D快速复制
......
jc(1) = 1
先层层递进,找到终结点,再逐层回归
"""

def jc(n):
    if n == 1:
        return 1
    else:
        return n * jc(n - 1)

result = jc(10)
print(result) # 3628800

**声明:**本篇学习笔记参考黑马程序员相关课程,部分素材来源于网络公开资料及本人补充;文中为个人整理复盘,仅供学习交流使用。

相关推荐
ZhengEnCi16 分钟前
Agent 查不出代码 Bug 怎么办:一份带时间戳的调试日志与读日志排查流程
python·ai编程
威哥爱编程1 小时前
模拟面试智能体开发实战 05:给面试官接上题库和检索,题目结构化、大纲可溯源,AI 不再凭印象出题
python·agent·harmonyos
威哥爱编程1 小时前
模拟面试智能体开发实战 06:答得好怎么追问、答得错怎么点破,追问引擎让面试官会深挖会纠错
python·agent·harmonyos
codists2 小时前
《crafting interpreters》阅读笔记:4.6.2
python
2601_967979122 小时前
机器学习必修课:经典算法与Python实战
python·算法·机器学习·实战·课程
cpolar技术支持2 小时前
listen(5) 只排得住 5 个连接:第 6 个客户端卡在 connect 超时,进程活着端口却显示假活不放行
python·socket·tcp·cpolar·故障排查
梯度下降者3 小时前
我校学子斩获 2025 全国高新技术竞赛 Python 赛道全国一等奖
python·教育·竞赛·信息技术·人才培养
小小张说故事3 小时前
Python 的 memoryview 为什么能零拷贝:拆开 buffer protocol、cast 和那道 BufferError
python
Hvitur3 小时前
Java - Lambda
java·开发语言·python
2601_967980114 小时前
win10如何把python加入环境变量
python·win10·安装教程·命令行·环境变量