递归|学习笔记

简介: 快速学习 递归

开发者学堂课程【Python 语言基础 3:函数、面向对象、异常处理递归】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/601/detail/8732


递归


目录:

递归简介

二 递归的定义

递归式函数的两个要件

范例

五 练习

 

一·递归简介

是解决问题的一种方式,它和循环很像

它的整体思想是,将一全大问题分解为一个个的小问题,直到问题无法分解时,再去解决问题

 

二·递归的定义

递归式的函数

从前有座山,山里有座庙,庙里有个老和尚讲故事,讲的什么故事呢?

从前有座山,山里有坐庙,庙里有个老和尚讲故事,讲的什么故事呢?递归简单理解就是自己去引用自己!

递归式函数,在函数中自己调用自己!

无穷递归,如果这个函数被调用,程序的内存会溢出,效果类似于死循环

def fn():

fn()

fn()

是解决问题的一种方式,它和循环很像

它的整体思想是,将一全大问题分解为一个个的小问题,直到问题无法分解时,再去解决问题

 

三·递归式函数的两个要件

1.基线条件

问题可以被分解为的般小问题,当满足基线条件时,递归就不在执行了

2.递归条件

将问题继续分解的条件

递归和循环类似,基本是可以互相代替的

循环编写起来比较容易,阅读起来稍难

10!=10*9!

9!=9*8!

8!=8*7!

...

1!=1

def factorial(n):

...

该函数用来求任意数的阶乘

参数:

n 要求阶乘的数字

...

基线条件 判断 n 是否为1,如果为 1 则此时不能再继续递归

if n ==1

1 的阶乘就是 1,直接返回 1

return 1

递归条件

return n*factorial(n 1)

print(factorial(10))

 

四、范例:

尝试求 10 的阶(10!)

1!=1

2!=1*2=2

3!=1*2*3=6

4!=1*2*3*4=24

print(1*2*3*4*5*6*7*8*9*10)

创建一个变量保存结果

n=10

for i in range(1,10)

n*= i

print(n)

创建一个函数,可以用来求任意数的阶乘

def factorial(n):

...

该函数用来求任意数的阶乘

参数:

n 要求阶乘的数字

...

创建一个变量保存结果

result=n

for i in range(1,10):

result= i

result result

求 10 的阶乘

print(factorial(20))

 

五·练习

1.创建一个函数 power 来为任意数字做幂运算 n**i

 

2.创建一个函数,用来检查一个任意的字符串是否是回文 (字符串,如果是返回True,否则返回 False

回文字符串,字符串从前往后念和从后往前念是一样的

Abcba

相关文章
|
4天前
|
人工智能 运维 安全
|
2天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
10天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
833 109
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
435 11
|
3天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
4天前
|
机器学习/深度学习 传感器 算法
Edge Impulse:面向微型机器学习的MLOps平台——论文解读
Edge Impulse 是一个面向微型机器学习(TinyML)的云端MLOps平台,致力于解决嵌入式与边缘设备上机器学习开发的碎片化与异构性难题。它提供端到端工具链,涵盖数据采集、信号处理、模型训练、优化压缩及部署全流程,支持资源受限设备的高效AI实现。平台集成AutoML、量化压缩与跨硬件编译技术,显著提升开发效率与模型性能,广泛应用于物联网、可穿戴设备与边缘智能场景。
188 127