目录
序言
导入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() 语句。
因此,输出的内容为最终结果。