Python 递归(recursion) 和 迭代(iteration)

    递归 (recursion) 是指在函数的定义中使用函数自身的方法,直观上来看,就是某个函数自己调用自己。递归的基本思想就是把规模大的问题转化为规模小的相同的子问题来解决。 在函数实现时,因为大问题和小问题是一样的问题,因此大问题的解决方法和小问题的解决方法也是同一个方法。这就产生了函数调用它自身的情况。递归的实现包含了两个部分,一个是递归主体,另一个是终止条件。因此递归函数需要设置好终止条件,避免出现无限递归的情况,导致程序崩溃。


    迭代:(iteration) 就是不断用旧的变量值,递推出新的变量值,每一次迭代得到的结果会作为下一次迭代的初始值。


    递归例子:


    (1) 阶乘 :



在这里插入图片描述



def fact(n):if n == 1:return 1return n * fact(n-1)print(fact(4))


    (2) 斐波那契数列:前几个数列为: 0 1 1 2 3 5 8 13 21 34 55 89 144 233



在这里插入图片描述



def fibo(n):if n <= 1:return nelse:return fibo(n-1) + fibo(n-2)print(fibo(10))


    一些迭代例子:



在这里插入图片描述



list_of_numbers = [1, 2, 3, 4, 5, 6, 7, 8]
for num in list_of_numbers:print(num)


在这里插入图片描述



list_of_numbers = [1, 2, 3, 4, 5, 6, 7, 8]
for index, num in enumerate(list_of_numbers):print(f'Index {index}: {num}')


在这里插入图片描述



list_of_numbers = [1, 2, 3, 4, 5, 6, 7, 8]
squares = [num*2 for num in list_of_numbers]
print(squares)


在这里插入图片描述



my_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7, 'h': 8}
for key, value in my_dict.items():print(f'Key: {key}, Value: {value}')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/408623.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一款人性化的终端用户界面工具

A collection of human friendly terminal user interface. Screenshot • Installation • Usage • Configuration • Thanks 截图 历史文件预览 注意: find file 依赖 fzf. file browser依赖 ranger / lf / … 安装 git clone https://github.com/StubbornVegeta/Sta…

3秒内搞定服务器端口扫描!用RustScan快速查看开放端口

文章目录 3秒内搞定服务器端口扫描&#xff01;用RustScan快速查看开放端口1. RustScan简介2. RustScan特点3. RustScan的基本使用3.1 创建alias别名3.2 基本用法3.3 常用参数说明3.4 示例4. 注意事项 最近开始公众号文章也开始同步更新了&#xff0c;对Java、大数据、人工智能…

字节微前端框架Garfish

Garfish 是字节跳动开源的微前端框架&#xff0c;旨在应对现代 Web 应用在前端生态繁荣与应用日益复杂化背景下的挑战。本文将介绍如何使用 Garfish&#xff0c;提供代码示例&#xff0c;并与另一流行的微前端框架 Qiankun 进行对比分析。 安装 Garfish 首先&#xff0c;安装…

大模型对齐:DPO vs PPO

现在这些大型语言模型&#xff08;LLMs&#xff09;&#xff0c;可真是火得不行&#xff0c;各行各业都离不开它们了。它们能处理和写出跟我们差不多的文本&#xff0c;这让自然语言处理、写东西、还有客服这些领域都焕然一新。不过呢&#xff0c;这技术进步的同时也带来了一个…

Unity+Addressable

前期准备 下载一个hfs本地服务器&#xff0c;打开即可 HFS ~ HTTP 文件服务器 (rejetto.com) 1.安装Addressable插件 创建组 2.使用图片创建预制体 放入Addressable Groups内 3.右键 新建组 创建预制体t拖拽放入新建组里 新组命名为Gameobject 简化名称 4.创建一个测试脚本 …

Array List 练习(添加手机对象并返回要求的数据)

package ArrayListDemo;import java.util.ArrayList;public class ArrayListDemo7 {public static void main(String[] args) {//1.创建集合对象ArrayList<Phone> list new ArrayList<Phone>();//2.创建手机对象Phone ph1 new Phone("小米",1000);Pho…

使用 setResponseStatus 函数设置响应状态码

title: 使用 setResponseStatus 函数设置响应状态码 date: 2024/8/25 updated: 2024/8/25 author: cmdragon excerpt: 通过 setResponseStatus 函数,你可以轻松地在 Nuxt.js 中设置响应的状态码。这不仅能帮助用户更好地理解发生了什么,还能在需要时显示自定义的错误页面。…

rust api接口开发(以登陆和中间件鉴权为例)

rust rest api接口开发 所需依赖 axumtokioredis cargo add axum redis cargo add tokio --featuresfull路由服务创建和运行 //子路由 let v1router axum::Router::new(); //主路由,并将子路由绑定到主路由 let routeraxum::Router::new().nest("/v1",v1router)…

Pytorch实现CIFAR10训练模型

文章目录 简述模型结构模型参数、优化器、损失函数参数初始化优化器损失函数 模型训练、测试集预测、模型保存、日志记录训练测试集测试模型保存模型训练完整代码 tensorboard训练可视化结果train_loss测试准确率测试集loss 模型应用模型独立应用代码api.py预测结果 简述 使用…

Axure设计之三级菜单导航教程(中继器)

中继器作为复杂的元件&#xff0c;通常被用来制作“高保真”的动态原型&#xff0c;以达到良好的视觉效果和交互效果。本文将教大家通过AxureRP9工具如何使用中继器设计三级菜单导航。 一、案例效果 原型预览&#xff1a;https://1zvcwx.axshare.com 主要效果&#xff1a; 1…

数据结构(Java实现):链表与LinkedList

文章目录 1. 单向链表1.1 链表的概念及结构1.2 链表的实现1.2.1 单向链表类和节点1.2.2 打印每个节点的值1.2.3 计算链表长度1.2.4 头插节点1.2.5 尾插节点1.2.6 在指定下标插入新节点1.2.7 判断是否存在某个节点1.2.8 移除某个节点1.2.9 移除所有指定节点1.2.10 清空链表1.2.1…

redis | 认识非关系型数据库Redis的哈希数据类型

Redis 非关 kv型 哈希通用命令python 操作hash应用场景 数据类型 数据类型丰富&#xff0c;字符串strings,散列hashes,列表lists&#xff0c;集合sets,有序集合sorted sets等等 哈希 定义 1、由field和关联的value组成的键值对 类似于python的键值对 2、field和value.是字符…

一文学会Shell中case语句和函数

大家好呀&#xff01;今天简单聊一聊Shell中的case语句与函数。在多选择情况下使用case语句将非常方便&#xff0c;同时&#xff0c;函数的学习和使用对于学好一门编程语言也是非常重要的。 一、case语句 case语句为多选择语句。可以用case语句匹配一个值与一个模式&#xff0c…

OpenCV绘图函数详解及其用法示例

MFC类库中的CDC类有划线,画矩形,画椭圆,画多边形,文字等绘图函数,OpenCV也有类似的绘图函数。二者的区别在于MFC画图是在一定的区域内绘制图形,而OpenCV则是在图像上绘制,主要用于图像标注。 OpenCV的常用绘图函数有arrowedLine,circle ,drawContours, drawMarker, dra…

AI数字时代客户体验白皮书5G云算力网络云网终端AIGC人工智能宽带政企物联网专线 IDC智慧城市专家学者教授培训讲师分享

客户体验的时代已然来临 在过去的几十年里&#xff0c;中国企业逐步从产品驱动转向市场驱动&#xff0c;从规模竞争走向创新竞争。然而&#xff0c;随着市场竞争的白热化和产品、服务的高度同质化&#xff0c;企业之间的差异化逐渐被削弱&#xff0c;传统的价格战、渠道战已经…

layui table表单 checkbox选中一个其它也要选中

当我们选中其中一个商品的时候同类型的商品状态也要跟着改变 所以要在表单加载完成后去监听checkbox ,done:function (res) {console.log(详情表格数据,res)tableDetailList res.data;// 监听表格复选框选择table.on(checkbox( INST_SELECTORS.instLayFilters.unpaidTableDe…

Python优化算法13——飞蛾扑火优化算法(MFO)

科研里面优化算法都用的多&#xff0c;尤其是各种动物园里面的智能仿生优化算法&#xff0c;但是目前都是MATLAB的代码多&#xff0c;python几乎没有什么包&#xff0c;这次把优化算法系列的代码都从底层手写开始。 需要看以前的优化算法文章可以参考&#xff1a;Python优化算…

用4种不同视角理解矩阵乘法

目录 1. 背景 2. 线性方程组视角&#xff08;向量点积视角&#xff09; 3. 列向量观点视角 4. 向量变换视角&#xff08;矩阵函数&#xff09; 5. 坐标变换视角 1. 背景 矩阵诞生于线性方程组的求解&#xff0c;最基本的运算方法来自于高斯消元法&#xff0c;所以矩阵整个…

Linux 离线安装docker和docker-compose

前言 公司有 docker 和 docker-compose 离线包安装部署的需求&#xff0c;本文应运而生撰写时间&#xff1a;2024-06-07&#xff08;初稿&#xff09; 1 应用版本 docker&#xff1a;20.10.7, build f0df350docker-compose&#xff1a;1.25.1 2 物料准备 服务器账号/密码d…

[数据集][目标检测]电力场景输电线防震锤检测数据集VOC+YOLO格式2721张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2721 标注数量(xml文件个数)&#xff1a;2721 标注数量(txt文件个数)&#xff1a;2721 标注…