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

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

相关推荐
外收内放1 小时前
FastAPI猜字谜实战(3):把每一局存成JSON
开发语言·python·学习·json·fastapi
小白学大数据1 小时前
基于 Python 的家具消费数据分析全链路实战:从数据治理到销售预测
人工智能·python·数据分析
镜子AI1 小时前
镜子AI案例工程复盘:用Python给GEO效果做抽样检测与置信区间估计
开发语言·人工智能·python
WenGyyyL1 小时前
从零理解强化学习:为什么 AI 需要 Advantage,而不只是 Reward?
人工智能·python·深度学习·机器学习·nlp
春涧草茶1 小时前
慢就是快15-1 多进程 多线程
开发语言·python
云和数据.ChenGuang2 小时前
Python 集合(set)常用函数详解与实战案例
开发语言·python·深度学习·langchain
梯度下降者2 小时前
python在哪些方面有应用,python可以用在哪些方面
人工智能·python·web开发·科学计算·应用领域
烂蜻蜓2 小时前
Pandas入门教程(十二):读取 HTML 表格——read_html 参数详解与网页数据清洗
python·html·pandas
2601_967979122 小时前
Opteryx Python库 macOS版本0.0.0a12
python·macos·1024程序员节·wheel·opteryx·alpha