Python函数的递归调用

devtools/2025/3/17 0:54:57/

基本介绍

1、简单的说: 递归就是函数自己调用自己,每次调用时传入不同的值

2、递归有助于编程者解决复杂问题,同时可以让代码变得简洁

递归能解决什么问题?

1、各种数学问题如:皇后问题、汉诺塔、阶乘问题、迷宫问题等等

2、各种算法中也会使用到递归,比如快排,归并排序,二分查找,分治算法等

3、将用栈解决的问题 —》 递归代码比较简洁

递归例子

(1)打印问题

python">#当执行test(4),输出什么?
def test(n):if n > 2:test(n-1) #在函数内部调用它自己print("n=",n)# 执行
test(4)

调用一个函数就创建一个新空间,当返回的时候,对应的栈就被回收了。

(2)阶乘问题

python"># 阶乘,当执行factorial(4),返回值是多少?
def factorial(n):if n == 1:return 1else:return factorial(n-1)*n#执行
print(factorial(4))

递归重要规则

1、执行一个函数时,就创建一个新的空间(栈空间)
2、函数的变量是独立的,比如n变量
3、递归必须向退出递归的条件逼近,否则就是无限递归,就会出现 RecursionError: maximum recursiondepth exceeded 【死龟了:)】

python">def test(n):if n > 2:test(n)print("n=", n)# 调用
test(4)

4、当一个函数执行完毕,或者遇到return,就会返回,遵守谁调用,就将结果返回给谁


http://www.ppmy.cn/devtools/167687.html

相关文章

ETL与ELT核心技术解析:如何选择最优数据集成方案

在数字化转型浪潮中,数据集成作为企业数据战略的核心环节,ETL与ELT两种技术路径的抉择直接影响着数据处理效率。本文将通过谷云科技在数据集成领域的实践经验,深入解析两种模式的本质差异与应用场景。 技术原理全景解读 1. ETL数据集成流程…

STM32 内置的通讯协议

数据是以帧为单位发的 USART和UART的区别就是有没有同步功能 同步是两端设备有时钟连接,异步是没时钟连接,靠约定号的频率(波特率)接收发送数据 RTS和CTS是用来给外界发送已“可接收”或“可发送”信号的,一般用不到…

DeepSeek-R1本地化部署(Mac)

一、下载 Ollama 本地化部署需要用到 Ollama,它能支持很多大模型。官方网站:https://ollama.com/ 点击 Download 即可,支持macOS,Linux 和 Windows;我下载的是 mac 版本,要求macOS 11 Big Sur or later,Ol…

牛客python蓝桥杯11-32(自用)

11 import os import sysdef huiwen(str):length len(str)# if length 0:# return -1result []for i in range(length-1): # 0 - length-2for j in range(i2,length1):# 取出从索引 i 到 j-1 的子串s str[i:j]# 正序倒序if s s[::-1]:result.append(len(s))if result…

Nanobrowser:开源AI自动化神器 OpenAI Operator替代品

Nanobrowser介绍 Nanobrowser 是一款基于 AI 驱动的 Web 自动化开源工具,以 Chrome 扩展程序的形式运行,让用户只需利用自己的 LLM API 密钥便能轻松启动多代理工作流,成为 OpenAI Operator 的免费替代方案。它不仅支持灵活接入您喜欢的 LLM…

【Python】为什么要写__init__.py

文章目录 PackageA(__init__特性)应该往__init__.py里放什么东西?1、包的初始化2、管理包的公共接口3、包的信息 正常我们直接导入就可以执行,但是在package的时候,有一种__init__.py的特殊存在 引入moduleA.py,执行main.py&…

SQL--算术运算符

过滤信息:where SELECT * FROM employees where department_id90; where紧随from语句 算术运算符: 加法运算符() 用于计算两个数值的和。 示例: SELECT 1001 FROM dual; /*结果为101*/ SELECT 100A FROM dual; /*…

大数据学习(62)- Hadoop-yarn

&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦&#x1f91…