【Python循环6/6】循环的综合运用

目录

回顾

for循环遍历列表

for循环进行累加/累乘的计算

复杂的条件判断

嵌套        

嵌套循环

练习

遍历整数列表

总结


回顾

        在之前的博文中,我们学习了for计数循环;while条件循环;以及跳出循环的两种方法break,continue。

        今天,我们将通过一些真实的案例来更进一步体会循环的妙处。

        节日马上要到啦,**的行政小A在准备礼物时,发现了一大堆需要重复做的事情,咱们用循环大法来帮助她吧。

for循环遍历列表

        我们可以用for循环遍历列表girls,并用格式化输出的方式,输出每个女员工的姓名+祝福语。

for循环进行累加/累乘的计算

        除了遍历列表,for循环经常应用在多个数累加/累乘的计算中。
        例如:我有一个列表,里面是自己京东账户购物车里的5件商品的价格,然后需要计算清空购物车花多少钱。
        我们可以定义一个变量sum用来存储总金额,遍历列表jdList中的每个金额,依次累加到sum中。

复杂的条件判断

        除了累加和计数,for循环还可以和if条件判断结合,做复杂的条件判断

        例如:leader提出,如果女生们所选的礼品金额大于200的就可以晋级下一轮的终极PK!

        要实现这个需求,就需要在for循环遍历列表的同时,判断礼品金额是否大于200,如果大于200就筛选出这位幸运儿。

        经过一轮PK,本次节日最幸运的女神是Ann~她将获得“清空护肤品愿望清单特权”一次。OMG!也就是说可以清空她购买愿望清单里每一个品牌的每一种单品哦!!猜猜看这用程序应该如何做呢?

嵌套        

        我们可以使用嵌套循环来实现这个功能,在了解嵌套循环之前,我们先来回顾一下嵌套。
在if判断语句中,我们学习过if语句的相互嵌套。嵌套的if条件判断:就是在一个条件判断中之下再叠加一层条件判断。

嵌套循环

        同理,嵌套循环就是一个循环出现在另一个循环里。嵌套循环的特征是:对于外循环的每次迭代,内循环都要完成它的所有迭代。

        这5行代码的意思是使用for循环遍历列表brandList中的元素,之后进入内循环遍历itemList中的所有元素,使用print输出每一种组合。
 

brandList = ["Ja mer","Cbp","SK3"]
itemList = ["精华","面霜","眼霜","爽肤水"]
for brand in brandList:for item in itemList:print(f"恭喜你将获得{brand}品牌的{item}一份")

遍历列表--外循环

        第三行,用for...in...结构遍历列表brandList,依次取出列表中的元素。每取出一个元素就进入到下一个for循环结构中。

遍历列表--内循环

        第四行,用for...in...结构遍历列表itemList,依次取出列表中的元素。每取出一个元素,就进行一次格式化输出。

练习

Lucky的亮亮

        1024程序员节,夜曲选出了最lucky的一位程序员亮亮。老板会为他购买“苹果”,“华为”,“小米”这三个品牌的所有“新款手机”,“平板电脑”,“智能手表”。来试试看用嵌套循环实现这段代码,并把亮亮获得的礼物🎁 打在公屏上。
        输出的样式示例:恭喜亮亮将获得苹果品牌的新款手机一份。

参考代码:

# 定义列表brand,存储品牌数据:苹果,华为,小米
brandList = ["苹果","华为","小米"]
# 定义列表itemList,存储单品数据:新款手机
itemList = ["新款手机","平板电脑","智能手表"]
# 进入外循环,用for...in...结构遍历列表brand,依次取出列表中的元素
for brand in brandList:# 进入内循环,用for...in...结构遍历列表itemList,依次取出列表中的元素for item in itemList:# 输出格式化字符串:恭喜你获得i品牌的j一份print(f"恭喜亮亮将获得{brand}品牌的{item}一份")

运行结果:

案例

        循环嵌套是一种很常用的循环结构,在需要组合的场景都会经常用到哦~
        案例1:在自动化办公中,读取Excel文件中的每一行和每一列,就可以用循环嵌套。你还能想到哪些使用了循环嵌套的例子呢,欢迎在讨论区和大家分享哦~

         lucky的亮亮,获得了9个奖品。他打算将列表中的前5个礼物,送给一直支持他工作的女朋友。

        接下来我们试着用while循环帮助亮亮在公屏上输出前5个礼物的名字,截屏给亮亮的女朋友看。

参考代码:

present = ['苹果新款手机', '苹果平板电脑', '苹果智能手表', '华为新款手机', '华为平板电脑', '华为智能手表', '小米新款手机', '小米平板电脑', '小米智能手表']
count = 0
while count <= 4:print(f"恭喜你获得了{present[count]}一份")count = count + 1

运行结果:

while循环

        我们可以用while循环打印礼物列表present中的前5个礼物。代码第1行定义了列表present,存储9个礼物的名字;第2行初始化变量count,赋值为0;第3行使用while循环进行判断,count是否小于等于4;如果是就格式化输出“恭喜你获得了{present[count]}一份”;第5行将count计数加1。

for循环

        除了while循环,我们还可以使用for循环来实现刚刚的效果。例如:创建一个列表aList = [0,1,2,3,4],使用for循环遍历礼物列表中前五项的礼物并打印出来。

遍历整数列表

        刚刚只是遍历了5个数字的列表,我们可以通过创建列表的方式完成。可是如果我们要遍历100个整数,或者1000个整数呢?难道需要手动创建非常冗长的列表吗?no,no,no!
        接下来我们一起来学习一种更高效的方法吧~

        for i in range()的功能是:遍历一个整数列表。其中range()的功能是:创建一个整数列表。例如:range(5)可以生成一个从0 开始到5结束但不包括5的整数列表[0,1,2,3,4]。

for i in range(5):print(i)

for...in...

        第一行,用for...in...结构遍历range()功能生成的列表中的每一个值。

range(5)

        使用range()功能,填入数字5,可以生成一个从0 开始到5结束但不包括5的整数列表[0,1,2,3,4]。

结果

        for循环遍历range(5)生成的列表[0,1,2,3,4]每赋值给i一次,就执行一次print(i)。
直到全部赋值完为止,循环才结束。

        range(5)可以生成从0到4的整数列表。如果我们需要生成从1到4的整数列表,只需要在range(5)中添加一个初始计数值1,改成range(1,5)就可以啦。

        range()功能中可以填写2个内容,range(a,b)。a: 计数从 a 开始。默认是从 0 开始,可省略。b: 计数到 b 结束,但不包括 b,不可省略。

总结

        今天我们复习了for循环和while循环的知识点。在此基础上还学习了两个高级应用:嵌套循环,以及range()功能。

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

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

相关文章

相机拍照与摄影学基础

1.相机拍照 相机可能形状和大小不同&#xff0c;但基本功能相同&#xff0c;包括快门速度、光圈和感光度&#xff0c;这些是摄影的通用概念。即使是一次性相机也是基于这三个理念工作的。不同类型相机在这三个概念上的唯一区别是你可以控制这些功能的程度。这三个参数被称为相…

爬虫Day3

用到的网页--豆瓣电影Top250 需要爬取信息&#xff1a; 数据保存在网页源代码中&#xff0c;是服务加载方式。先拿到网页源代码--request。再通过re提取想要的信息---re。 新知识&#xff1a;用csv存数据&#xff0c;可以用excel表格展示数据 import csv result obj.findite…

外包干了28天,技术退步明显......

说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入深圳某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&a…

[项目设计]基于websocket实现网络对战五子棋

项目介绍 该项目旨在实现一个网页端的在线五子棋&#xff0c;将实现登陆、好友、房间、对战、观战、聊天等功能 完成该项目需要了解C、数据库MySQL、基础前端HTML/CSS/JS/Ajax、网络协议WebSocket 项目源码&#xff1a;azhe1/online_gobang - 码云 - 开源中国 (gitee.com) …

【Spring Cloud Gateway】路由配置uri三种方式及区别

websocket配置方式 ws:// 或 wss:// 开头的 URI&#xff0c;表示配置的是支持 Websocket 协议的目标地址。 这种方式适用于需要与客户端建立长连接、实现双向通信的场景&#xff0c;比如实时消息推送、即时聊天等。 使用 Websocket 配置方式可以让 Spring Cloud Gateway 能够…

day14-SpringBoot 原理篇

一、配置优先级 SpringBoot 中支持三种格式的配置文件&#xff1a; 注意事项 虽然 springboot 支持多种格式配置文件&#xff0c;但是在项目开发时&#xff0c;推荐统一使用一种格式的配置 &#xff08;yml 是主流&#xff09;。 配置文件优先级排名&#xff08;从高到低&…

R语言实现多要素偏相关分析

偏相关分析是指当两个变量同时与第三个变量相关时&#xff0c;将第三个变量的影响剔除&#xff0c;只分析另外两个变量之间相关程度的过程&#xff0c;判定指标是相关系数的R值。 在GIS中&#xff0c;偏相关分析也十分常见&#xff0c;我们经常需要分析某一个指数与相关环境参…

clickhouse突然启动不起来问题排查

场景&#xff1a; 在实现postgreql数据迁移到clickhouse中&#xff0c;想使用MaterializedPostgreSQL的功能实现&#xff0c;但是中途clickhouse突然挂了&#xff0c;就再启动不了了。 现象&#xff1a; systemctl start clcikhouse-server启动报错 [rootlocalhost clickhous…

理清大数据技术与架构

大数据并不是一个系统软件&#xff0c;更不是一个单一的软件&#xff0c;它实际上是一种技术体系、一种数据处理方法&#xff0c;甚至可以说是一个服务平台。在这个技术体系中&#xff0c;涵盖了许多不同的部件&#xff0c;比如Hadoop服务平台。这一服务平台可以根据具体情况自…

HarmonyOS ArkTS 通用事件(二十三)

通用事件目录 点击事件事件ClickEvent对象说明EventTarget8对象说明示例 触摸事件事件TouchEvent对象说明TouchObject对象说明示例 挂载卸载事件事件示例 点击事件 组件被点击时触发的事件。 事件 ClickEvent对象说明 从API version 9开始&#xff0c;该接口支持在ArkTS卡片中…

02、JS实现:使用二分查找实现两数相除的算法(要求:不使⽤乘法、除法和 mod 运算符)

二分查找实现两数相除的算法 Ⅰ、两数相除&#xff1a;1、题目描述&#xff1a;2、解题思路&#xff1a;3、实现代码&#xff1a; Ⅱ、小结&#xff1a; Ⅰ、两数相除&#xff1a; 1、题目描述&#xff1a; 给定两个整数&#xff0c;被除数 dividend 和除数 divisor。将两数相…

Oracle 部署及基础使用

1. Oracle 简介 Oracle Database&#xff0c;又名 Oracle RDBMS&#xff0c;简称 Oracle Oracle系统&#xff0c;即是以Oracle关系数据库为数据存储和管理作为构架基础&#xff0c;构建出的数据库管理系统。是目前最流行的客户/服务器&#xff08;client/server&#xff09;或…

8种Kubernetes集群中Pod处于 Pending状态的故障排除方法

文章目录 一、Pod与容器二、Pod的阶段&#xff08;状态&#xff09;三、Pod 状态故障排除3.1 检查 Pod 事件3.2 检查资源可用性3.3 检查污点和容忍度3.4 检查节点亲和性设置3.5 检查持久卷声明3.6 检查配额和限制3.7 验证 Pod 和容器映像3.8 分析调度程序日志 四、用于排查 Pen…

html中如何让网页禁用右键禁止查看源代码

在网页中&#xff0c;辛辛苦苦写的文章&#xff0c;被别人复制粘贴给盗用去另很多站长感到非常无奈&#xff0c;通常大家复制都会使用选取右键复制&#xff0c;或CTRLC等方式&#xff0c;下面介绍几种禁止鼠标右键代码&#xff0c;可减少网页上文章被抄袭的几率&#xff0c;当然…

机器学习——终身学习

终身学习 AI不断学习新的任务&#xff0c;最终进化成天网控制人类终身学习&#xff08;LLL&#xff09;&#xff0c;持续学习&#xff0c;永不停止的学习&#xff0c;增量学习 用线上收集的资料不断的训练模型 问题就是对之前的任务进行遗忘&#xff0c;在之前的任务上表现不好…

用C语言打造自己的Unix风格ls命令

在Unix或类Unix操作系统中&#xff0c;ls是一个非常基础且实用的命令&#xff0c;它用于列出当前目录或指定目录下的文件和子目录。下面&#xff0c;我们将通过C语言编写一个简化的ls命令&#xff0c;展示如何利用dirent.h头文件提供的函数接口实现这一功能。 #include "…

发布镜像到阿里云仓库

发布上一篇Dockerfile实战-自定义的centos镜像。 1、登录阿里云 2、找到容器镜像服务 3、创建命令空间 4、创建镜像仓库 5、点击进入这个镜像仓库&#xff0c;可以看到所有的信息 6、根据操作指南测试推送发布 6.1登录阿里云 [rootzhoujunru home]# docker login --usernam…

开箱即用之 windows部署jdk、设置nginx、jar自启

jdk安装 官网下载对应的安装包&#xff0c;解压之后放在本地指定的文件夹下 传送门https://www.oracle.com/java/technologies/downloads/#jdk21-windows 我比较喜欢下载zip方式的&#xff0c;解压之后直接能用&#xff0c;不需要安装了 配置环境 JAVA_HOME 添加path路径 …

Nebula Graph-01-Nebula Graph简介和安装以及客户端连接

前言 NoSQL 数据库 图数据库并不是可以克服关系型数据库缺点的唯一替代方案。现在市面上还有很多非关系型数据库的产品&#xff0c;这些产品都可以叫做 NoSQL。NoSQL 一词最早于上世纪 90 年代末提出&#xff0c;可以解释为“非 SQL” 或“不仅是 SQL”&#xff0c;具体解释要…

蓝桥练习题总结(一)字母图形、完美的代价、01串、序列求和

目录 一、字母图形 二、完美的代价 三、01字串 四、序列求和 一、字母图形 问题描述 利用字母可以组成一些美丽的图形&#xff0c;下面给出了一个例子&#xff1a; ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个5行7列的图形&#xff0c;请找出这个图形的规律&#xff…