网站首页 > 技术文章 正文
要使用递归函数,我们先弄明白函数递归是啥,有啥作用?
了解知道了以后,我们才能用起来,去调用,不能我们使用不起来,因为不知道为什么,也不知道有啥意义,用也是乱用。
现在,我想用python代码实现一个数的阶乘,如何实现呢?
首先我们先定义一个函数,用实现阶乘来讲,当然不是所有编程都要用,很多不适合、不需要递归的我们也没必要用起来。
def fun1(n):
if n == 0: # 条件
return 1 #返回1,你输入1,结果是1 不能再调用了 ,不能就是0,就是BUG了
else: # 递归条件
return n * fun1(n - 1)#条件满足,就递归
print(fun1(5)) # 调用函数 输出 120
它是怎么运算的呢?
def fun1(n):
if n == 0: # 条件
return 1
else: # 递归条件
print(n)#我们提前打印看下变化
return n * fun1(n - 1)#条件满足,就递归
print(fun1(5)) # 调用函数 输出 120
调用 的适合每次本身*(它自己-1)然后保存下来,当n减到0 就不算了0!=1。
逻辑如下:
fun1(5) → 5 * fun1(5-1)
fun1(4) → 4* fun1(4-1)
fun1(3) → 3* fun1(3-1)
.....
fun1(0) → 1
我们来看看斐波那契数列这个实现
def 斐波那契数列(n):#斐波那契数列()函数,你们最好用好多命名,这里为了方便看懂
if n <= 1: # 条件
return n
else: # 递归条件
return 斐波那契数列(n-1) + 斐波那契数列(n-2)
print(斐波那契数列(10)) # 输出 55
根据实际需要确定是不是需要递归,如果调用它自己能实现我们的实现编程目的,就用。否则就不需要了。
猜你喜欢
- 2025-05-23 python之面向对象
- 2025-05-23 Python中type()函数的深度探索:类型检查与动态类创建
- 2025-05-23 C++调用动态库两种方式和Python调用C++动态库
- 2025-05-23 在 Python 中实现延迟调用
- 2025-05-23 python 简单几句代码调用摄像头
- 2025-05-23 Python中class对象/属性/方法/继承/多态/魔法方法详解
- 2025-05-23 Python提速神器
- 2025-05-23 「Python教程」第5篇 Python程序结构
- 2025-05-23 Python 开发者必会的 5 个反射技巧
- 2025-05-23 Python静态方法@使用,类或函数调用之带括号、不带括号
- 05-25Python 3.14 t-string 要来了,它与 f-string 有何不同?
- 05-25Python基础元素语法总结
- 05-25Python中的变量是什么东西?
- 05-25新手常见的python报错及解决方案
- 05-2511-Python变量
- 05-2510个每个人都是需要知道Python问题
- 05-25Python编程:轻松掌握函数定义、类型及其参数传递方式
- 05-25Python基础语法
- 257℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 90℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 81℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)