【Python循环2/5】for循环的复杂应用

目录

序言

导入1

累加

练习

导入2

计数器

练习

导入3

if判断

总结


序言

        昨天,我们学习了 for 循环遍历列表、字典等数据的方式。今天我们会学习,for 循环与“累加” 、if 判断和“计数器”的结合运用。

导入1

        在前面的学习中,我们学过运用四则运算,计算 a 和 b 的和。如果,要计算列表 jdList 中所有元素的和,该怎么操作呢?

        这种情况下,我们可以引入"累加"的概念。什么是“累加”呢?如图,我们往瓶子里不断地放硬币的过程,就是“累加”。

累加

        这5行代码的功能就是,计算列表中的所有元素的总和并输出。接下来,我们将拆解累加的计算过程。

jdList = [3, 1.5, 4, 2]
total = 0
for price in jdList:
    total = total + price
print(total)

定义列表

第1行定义了列表 jdList ,列表中的四个元素都是可计算的数值(整型或浮点型)。

初始值

        我们需要用一个变量来存储总和,第2行定义变量 total ,将0赋值给变量,这个过程就是设置初始值。
        注意:这里的初始值需要定义在 for 循环的外侧,若定义在 for 循环中,每次循环变量都会重新赋值。

遍历列表

第3行使用 for...in... 结构遍历列表 jdList ,依次取出每个元素。

累加

        第4行使用加法,计算 total 和 price 的和,再赋值给 total。注意:根据四则运算规则,先计算等号("=")右边内容,再将计算结果赋值给左边变量。

结果

        当 for 循环遍历结束后,此时,total 的值为最后一次计算的结果。第5行,使用 print() 输出的就是列表中四个数据的总和。

练习

清空购物车

 要求:
1. 将[109.0, 21.5, 30.0, 509.0, 11.2]赋值给变量 jdList ;
2. 定义变量 total ,初始值设为0;
3. 使用 for 循环遍历列表 jdList,取列表中的每个值进行累加;
4. 使用 print() 输出最终结果。

参考代码:

# 定义列表jdList存储价格
jdList = [109.0, 21.5, 30.0, 509.0, 11.2]

#  定义变量total,初始值为0
total = 0

# 使用for循环遍历列表,利用累加的方法计算总和,最后输出
for price in jdList:
    total = total + price
print(total)

输出结果:

导入2

        到这里,我们就学习了“累加”的应用。但在列表的操作中,不仅有总和的计算。接下来,学习记录元素在列表中位置的方法。

        例如:班主任有一个学生名单,需要按照顺序输出,第1名是xx,第2名是xx。一般我们会使用索引,一行行输出。

names = ["Tom", "Tim", "Amy", "Eva"]
print(f"第1名是{names[0]}")
print(f"第2名是{names[1]}")
print(f"第3名是{names[2]}")
print(f"第4名是{names[3]}")

        但是这样一行行的输出太繁琐了。为了解决这个问题,我们可以使用“计数器”来记录当前的遍历位置。

计数器

        什么是“计数器”?
        “计数器”与“累加”的用法类似,在日常生活中,用来统计当前项目的进度,例如:食堂现在已完成打饭的人数。

        因此,班主任输出学生排名,可以在遍历姓名的同时,使用“计数器”统计当前位置。

练习

班级排名

要求:
1. 定义一个计数器 count ,初始值设为0,用于展示学生排名;
2. 使用 for 循环遍历 students 列表,用格式化输出:"第{count}名是{name}"
注意:列表 students 中学生排名从1开始。

参考代码:

# 定义存储学生姓名的列表
students = ["Tom", "Blue", "Max", "Shufen", "Joe", "Tim"]

# 定义变量count,初始值为0
count = 0

# 使用for循环变量列表
for name in students:
    # count值加1,赋值给count
    count = count + 1
    # 使用格式化输出
    print(f"第{count}名是{name}")

运行结果:

导入3

        学习了“累加”和“计数器”的用法后,但是部分情况下,我们不一定会对列表中的每个元素都进行累加,如果只取部分,该怎么处理呢?

        如图所示,列表中已售罄商品使用"-"表示,想要剔除"-",统计剩余商品总价,该怎样计算呢?

if判断

        这时,需要使用 if 语句,先判断再计算。如图所示,逐个取出列表中的元素,使用 if 判断,元素不等于"-"时,再进行累加。

        整理前面的思路,剔除"-"计算列表 jdList 的商品总价代码如图。第4行,if 判断 price 不等于 "-" 时,使用累加计算总价。

        在 for 循环中使用 if 语句时,需要注意缩进。第一个缩进,上节课学过 for 循环中的代码需要增加缩进,表明是一个代码块。第二个缩进,使用 if 语句时,语句里面的内容也需要增加缩进。

        使用 for 循环和 if 语句时,需要注意 print() 的位置。
1. 当 print() 在 for 循环中缩进四个空格时,按照代码执行顺序,遍历每个元素后再输出。

2. 当 print() 位置在 if 语句的代码中时,表明 print() 是 if 代码块中的内容。只有在 if 判断的情况成立时,才会执行 print() 。

3. 当 print() 位置与 if 语句缩进相同,按照代码执行的顺序,先执行 if 语句块,然后执行 print() 。因此,这里输出的内容也是列表中所有的元素。

4. 当 print() 位置与 for 循环缩进相同时,按照代码执行顺序,循环结束后,再执行 print() 语句。
因此,输出的内容为最终结果。

总结

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

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

相关文章

计算机网络——物理层(数据交换方式)

计算机网络——数据交换方式 提高数据交换方式的必要性电路交换电路交换原理电路交换的阶段建立阶段通信阶段和连接拆除阶段 电路交换的优缺点报文交换什么是报文报文交换的阶段报文交换的优缺点 分组交换分组交换的阶段分组交换的优缺点 数据交换方式的选择数据报方式数据报方…

VS Code上,QT基于cmake,qmake的构建方法(非常详细)

VS Code上,QT基于cmake,qmake的构建方法 1 前言2 QT基于cmake的构建方法2.1 VS Code关键插件安装2.2 系统环境变量配置2.3 VS Code中,环境变量配置2.4 Cmake新建一个新的Porject 3 QT基于qmake的构建方法 1 前言 最近,由于认证了github的学生…

尺寸小又薄的整流桥IBS

1. 整流桥功能介绍 整流桥在电子领域中扮演着至关重要的角色,为各种电子设备和电路提供了稳定的电源。整流桥的主要作用是将交流电信号转换为直流电信号。当交流电信号通过整流桥时,它会使得只有一个方向的电流能够通过,从而实现了将交流电信…

【数据结构练习题】栈——1.括号匹配 2.逆波兰表达式求值 3.出栈入栈次序匹配 4.最小栈

♥♥♥♥♥个人主页♥♥♥♥♥ ♥♥♥♥♥数据结构练习题总结专栏♥♥♥♥♥ 文件目录 前言1.括号匹配1.1问题描述1.2解题思路1.3画图解释1.4代码实现2.逆波兰表达式求值 2.1问题描述2.2解题思路2.3画图解释2.4代码解释3.出栈入栈次序匹配 3.1问题描述3.2思路分析3.3画图解释3.…

金融知识分享系列之:MACD指标精讲

金融知识分享系列之:MACD指标精讲 一、MACD指标二、指标原理三、MACD指标参考用法四、MACD计算步骤五、MACD分析要素六、根据快线DIF位置判断趋势七、金叉死叉作为多空信号八、快线位置交叉信号九、指标背离判断行情反转十、差离值的正负十一、差离值的变化十二、指…

KBP210-ASEMI新能源专用整流桥KBP210

编辑:ll KBP210-ASEMI新能源专用整流桥KBP210 型号:KBP210 品牌:ASEMI 封装:KBP-4 正向电流(Id):2A 反向耐压(VRRM):1000V 正向浪涌电流:6…

中整协与成都艺星联合主办的“面部馒化修复注射技术培训班”圆满落下帷幕

在追求医疗美容学科深度的道路上,Yestar成都艺星再次成为行业先锋,近日,由中整协与成都艺星整形美容医院联合主办的“面部馒化修复注射技术培训班”在Yestar成都艺星圆满落下帷幕。本次培训班以其严谨的学术精神和对临床治疗思路的深入解读&a…

在idea中配置tomcat服务器,部署一个项目(下载教程加链接)

第一步:把Tomcat下载好 ww​​​​​​​Apache Tomcat - Welcome! 链接如上:进去后在左边找到Tomcat8点击进去后 找到图下内容 第二步: 打开这个文件点击bin进去 会出现一个黑色框框,也就是服务器 完成后就可以在浏览器输入…

Redis 搭建主从集群

文章目录 1. 主从集群架构1.1 准备实例和配置1.2 启动1.3 开启主从关系1.4 测试 2. 主从同步原理2.1 全量同步2.2 增量同步repl_backlog原理 2.3 主从同步优化小结 单节点的 Redis 并发能力有限,要进一步提高 Redis 的并发能力,就需要搭建主从集群&#…

2024年无人直播是否已经成为新趋势,商家使用矩图AI无人直播月增长5万+

无论是 个体商户、企业经营者、电商从业者、想创业赚钱的朋友;也不管你是做餐饮还是非餐饮;亦或是抖音小时达外卖。这篇文章,请勿必看完,对你的业绩增长是有绝对的帮助。 无人直播的发展经历了几个时代,现在已经到了4.0的时代,更安…

刷题DAY24 | LeetCode 77-组合

1 回溯法理论基础 回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。 所以以下讲解中,回溯函数也就是递归函数,指的都是一个函数。 1.1 回溯法的效率 回溯法的性能如何呢&#xff0…

深入探索Java并发编程:ArrayBlockingQueue详解

码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 在Java的并发编程世界中,java.util.concurrent包为我们提供了多种用于线程间安全通信的数据结构,其中Arra…

PTA冰岛人

作者 陈越 单位 浙江大学 2018年世界杯,冰岛队因1:1平了强大的阿根廷队而一战成名。好事者发现冰岛人的名字后面似乎都有个“松”(son),于是有网友科普如下: 冰岛人沿用的是维京人古老的父系姓制,孩子的姓…

【研发日记】Matlab/Simulink技能解锁(二)——在Matlab Function编辑窗口Debug

文章目录 前言 行断点 条件断点 按行步进 Watch Value 分析和应用 总结 前言 见《【研发日记】Matlab/Simulink技能解锁(一)——在Simulink编辑窗口Debug》 行断点 当Matlab Function出现异常时,如果能确定大致的代码段,就可以在相应的行上设置一…

为什么单线程的 Redis 能那么快?

大家好我是苏麟 , 给大家找一些好的文章看看 . 原文文章 : 03 高性能IO模型:为什么单线程Redis能那么快? (lianglianglee.com) Redis 为什么用单线程? 要更好地理解 Redis 为什么用单线程,我们就要先了解多线程的开销。 多线程的…

算法打卡day18|二叉树篇07|Leetcode 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

算法题 Leetcode 530.二叉搜索树的最小绝对差 题目链接:530.二叉搜索树的最小绝对差 大佬视频讲解:二叉搜索树的最小绝对差视频讲解 个人思路 因为是在二叉搜索树求绝对差,而二叉搜索树是有序的,那就把它想成在一个有序数组上求最值&…

CVE-2019-5782:kArgumentsLengthType 设置偏小导致优化阶段可以错误的去除 CheckBound 节点

文章目录 环境搭建漏洞分析笔者初分析笔者再分析漏洞触发源码分析 漏洞利用总结 环境搭建 sudo apt install pythongit reset --hard b474b3102bd4a95eafcdb68e0e44656046132bc9 export DEPOT_TOOLS_UPDATE0 gclient sync -D// debug version tools/dev/v8gen.py x64.debug ni…

分布式调用与高并发处理(二)| Dubbo

文章目录 Dubbo概念_什么是分布式系统单机架构集群架构分布式架构单机、集群和分布式的区别 Dubbo概念_什么是RPCRPC两个作用:常见 RPC 技术和框架: Dubbo概念_简介Dubbo能做什么Dubbo支持的协议 Dubbo概念_核心组件注册中心Registry服务提供者Provider服…

Cartwheel——文本生成3D动作或动画的工具

一个强大的文本转3D动画平台,用户只需通过输入文字提示即可生成视频、游戏、电影、广告、社交或VR项目所需的3D动画角色。 Cartwheel 是一个功能强大的文本到动画平台。只需键入即可为您的视频、游戏、电影、广告、社交或 VR 项目制作角色动画 定位: 定位于为用户提供简单…

Java学习笔记(13)

阶段项目 拼图小游戏 JFrame JMenuBar JMenu JMenuItem 用add方法添加到不同的对象中 添加图片 先创建一个图片ImageIcon的对象,写入图片的路径 再创建JLabel管理容器对象,把图片放到这个容器中,再把容器添加到界面 界面坐标位置 改变图…