【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()功能。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CMU 10-414/714: Deep Learning Systems --hw3

实现功能 在ndarray.py文件中完成一些python array操作 我们实现的NDArray底层存储就是一个一维向量&#xff0c;只不过会有一些额外的属性&#xff08;如shape、strides&#xff09;来表明这个flat array在维度上的分布。底层运算&#xff08;如加法、矩阵乘法&#xff09;都…

幻兽帕鲁游戏搭建(docker)

系列文章目录 第一章&#xff1a; 幻兽帕陆游戏搭建 文章目录 系列文章目录前言一、镜像安装1.创建游戏目录2.拉取镜像3.下载配置文件4.启动游戏 二、自定义配置总结 前言 这段时间一直在写论文还有找工作&#xff0c;也没学啥新技术&#xff0c;所以博客也很长时间没写了&am…

【滑动窗口、矩阵】算法例题

目录 三、滑动窗口 30. 长度最小的子数组 ② 31. 无重复字符的最长子串 ② 32. 串联所有单词的子串 ③ 33. 最小覆盖子串 ③ 四、矩阵 34. 有效的数独 ② 35. 螺旋矩阵 ② 36. 旋转图像 ② 37. 矩阵置零 ② 38. 生命游戏 ② 三、滑动窗口 30. 长度最小的子数组 ② 给…

高效备考2025年AMC8竞赛:吃透2000-2024年600道真题(免费送题)

我们继续来随机看五道AMC8的真题和解析&#xff0c;根据实践经验&#xff0c;对于想了解或者加AMC8美国数学竞赛的考生来说&#xff0c;吃透AMC8历年真题是备考更加科学、有效的方法之一。 即使不参加AMC8竞赛&#xff0c;吃透了历年真题600道和背后的知识体系&#xff0c;那么…

Qt笔记 mainwindow

mainwindow是用来做应用界面的&#xff0c;有菜单栏&#xff0c;工具栏&#xff0c;浮动窗口,中心部件以及状态栏这几个部分组成。 举个例子&#xff1a; 1.菜单栏: #include <QMenuBar>QMenuBar *menubar new QMenuBar(this); setMenuBar(menubar);//设置到当前窗口 …

31-Java前端控制器模式(Front Controller Pattern)

Java前端控制器模式 实现范例 前端控制器模式&#xff08;Front Controller Pattern&#xff09;是用来提供一个集中的请求处理机制&#xff0c;所有的请求都将由一个单一的处理程序处理该处理程序可以做认证/授权/记录日志&#xff0c;或者跟踪请求&#xff0c;然后把请求传给…

AI系统性学习05—向量数据库

文章目录 1、Chroma向量数据库1.1 安装Chroma1.2 初始化Chroma客户端1.3 创建一个合集1.4 添加数据1.5 查询数据1.6 持久化数据1.7 集合操作1.7.1 创建集合1.7.2 获取集合1.7.3 删除集合1.7.4 其他操作1.8 向集合添加数据1.9 查询集合数据1.10 更新集合数据1.11 删除集合数据1.…

[CISCN2019 华北赛区 Day1 Web5]CyberPunk --不会编程的崽

继续sql,哈哈。我按照我的思路来讲。 四个功能&#xff0c;提交&#xff0c;查找&#xff0c;修改&#xff0c;删除。多半是sql注入&#xff0c;而且又有修改&#xff0c;查找功能。多半还是二次注入。昨天那个修改密码的&#xff0c;也是二次注入。这里需要先找到注入点 姓名 …

STM32CubeMX学习笔记24---FreeRTOS(消息队列)

一. 队列简介 队列是为了任务与任务、任务与中断之间的通信而准备的&#xff0c;可以在任务与任务、任务与中 断之间传递消息&#xff0c;队列中可以存储有限的、大小固定的数据项目。任务与任务、任务与中断之 间要交流的数据保存在队列中&#xff0c;叫做队列项目。队列…

SLAM 求解IPC算法

基础知识&#xff1a;方差&#xff0c;协方差&#xff0c;协方差矩阵 方差&#xff1a;描述了一组随机变量的离散程度 方差 每个样本值 与 全部样本的平均值 相差的平方和 再求平均数&#xff0c;记作&#xff1a; 例如&#xff1a;计算数字1-5的方差&#xff0c;如下 去中心化…

Vulnhub靶机渗透:DC-7打靶记录

前言 自信自强&#xff0c;来自于不怕苦、不怕难的积淀。宝剑锋从磨砺出&#xff0c;梅花香自苦寒来&#xff1b;任何美好理想&#xff0c;都离不开筚路蓝缕、手胼足胝的艰苦奋斗&#xff01; 靶场介绍 DC-7是一个初中级的靶场&#xff0c;需要具备以下前置知识&#xff1a;…

【开源】SpringBoot框架开发不良邮件过滤系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统用户模块2.2 收件箱模块2.3 发件箱模块2.4 垃圾箱模块2.5 回收站模块2.6 邮箱过滤设置模块 三、实体类设计3.1 系统用户3.2 邮件3.3 其他实体 四、系统展示五、核心代码5.1 查询收件箱档案5.2 查询回收站档案5.3 新…

[Qt项目实战]Qt实现美松标签打印机标签二维码打印(QR混排模式+页打印模式)

1、硬件信息、环境参数及配套资料 1.1 打印机信息及开发环境 打印机 美松标签打印机串口/USB通讯Qt5.9 64位程序 1.2 打印机配套开发资料 打印机主要配套测试工具、开发SDK及驱动等&#xff0c;均由厂家提供。 开发Demo及动态库&#xff1a;MsPrintSDK-DLL-V2.2.2.5 链接&…

3、java虚拟机-类的生命周期-初始化阶段(与程序员有关)

一 、静态代码块执行顺序和字节码文件中的执行顺序以及什么赋值。 类的生命周期-初始化阶段-被static所修饰的常量才会被赋予值 初始化阶段-代码中静态代码块和静态变量的顺序和字节码中的执行顺序是一致的。 二、4种情况下&#xff0c;类会被初始化。 1、怎样查看类是…

阿里云部署MySQL、Redis、RocketMQ、Nacos集群

文章目录 &#x1f50a;博主介绍&#x1f964;本文内容MySQL集群配置云服务器选购CPU选择内存选择云盘选择ESSD AutoPL云盘块存储性能&#xff08;ESSD&#xff09; 镜像选择带宽选择密码配置注意事项 搭建宝塔面板方便管理云服务器云服务器的安全组安装docker和docker-compose…

Go语言学习13-常见软件架构的实现

Go语言学习13-常见软件架构的实现 架构模式 An architectural pattern is a general, reusable solution to a commonly occurring problem in software architectural within a given context. ——wikipedia Pipe-Filter 架构 Pipe-Filter 模式 非常适合于数据处理及数据分…

taro之Picker,PickerView基础用法

1.Picker 直接上代码 import Taro,{Component} from "tarojs/taro"; import {View,Picker} from tarojs/components import { AtIcon } from taro-ui import { putKey } from /src/utils/storage-utilsclass AgriculturePolicy extends Component{constructor (prop…

su: authentication failure 解决方法

产生问题的原因&#xff1a;使用su和sudo是有区别的&#xff0c;root的密码可能是原始的密码&#xff0c;你现在用户的密码大概率是更改过的 解决办法&#xff1a; 在Linux上切换root时&#xff0c;密码正确。。但提示&#xff1a;su: authentication failure ->sudo pa…

统计学基础概念和在AI中的应用

基本概念 统计学是一门研究数据收集、分析、解释和展示的科学&#xff0c;它提供了一套方法论&#xff0c;用于理解数据并从数据中得出结论。统计学在各个领域都有应用&#xff0c;包括经济学、医学、工程学、社会科学等。以下是统计学的一些基本概念&#xff1a; 描述性统计…

wireshark数据捕获实验简述

Wireshark是一款开源的网络协议分析工具&#xff0c;它可以用于捕获和分析网络数据包。是一款很受欢迎的“网络显微镜”。 实验拓扑图&#xff1a; 实验基础配置&#xff1a; 服务器&#xff1a; ip:172.16.1.88 mask:255.255.255.0 r1: sys sysname r1 undo info enable in…