目录
回顾
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()功能。