走出Python新手村第二步:循环【玩转Python】
前言
新的主线任务已开启,第一关了解一下Python中的条件语句。今日迎来了走出Python新手村的第二个关键步骤:循环。
让我们一起开启新的Python主线任务吧。
文章速度
阅读完本篇文章,开发者将有以下收获:
- 如何在利用高效的 for 循环的同时,以不同于其他元素的方式对特定的列表元素进行处理;
- 如何使用 while 循环让程序不断运行,直到指定的条件不满足为止;
- 掌握不同控制 while 循环流程的方式:使用 break 语句、使用 continue 语句。
while 循环
介绍
相较 for 循环用于针对集合中的每个元素都执行一个代码块,while 循环会不断运行,直到指定的条件不满足为止。
笔记
选择何时退出
当满足指定条件时,可以退出 while 循环。
对于列表的循环,一般会将条件指定为不超过列表的长度。
在不超过列表长度的情况下,使用 if-else 语句进行一些条件判断,输出满足条件的内容。
打印下面的代码,看看谁才是当之无愧的"好运锦鲤"。
name_list = ['yeyiyi', 'shangyingyan', 'lily', 'ann', 'ningjie', 'ningzaichun', 'chaipaopao', 'fayi']
def getSelf(self):
index = 0
while index < len(name_list):
print(f'好运积累中...')
if self in name_list:
print(f'恭喜{self},获得"好运锦鲤"的buff')
break
else:
print(f'亲爱的{self},下次更幸运')
break
index += 1
当 getSelf 方法入参中的名字存在于列表中,则打印文字为:恭喜shangyingyan,获得"好运锦鲤"的buff;
当 入参中的名字不在列表中,则打印文字为:恭亲爱的zhangsan,下次更幸运。
getSelf('shangyingyan')
>>> 好运积累中...
>>> 恭喜shangyingyan,获得"好运锦鲤"的buff
getSelf('zhangsan')
>>> 好运积累中...
>>> 亲爱的zhangsan,下次更幸运
使用break退出循环
还是上面的功能,我去掉 break,在来看下打印结果:
>>> 好运积累中...
>>> 亲爱的zhangsan,下次更幸运
>>> 好运积累中...
>>> 亲爱的zhangsan,下次更幸运
>>> 好运积累中...
>>> 亲爱的zhangsan,下次更幸运
>>> 好运积累中...
>>> 亲爱的zhangsan,下次更幸运
>>> 好运积累中...
>>> 亲爱的zhangsan,下次更幸运
>>> 好运积累中...
>>> 亲爱的zhangsan,下次更幸运
>>> 好运积累中...
>>> 亲爱的zhangsan,下次更幸运
>>> 好运积累中...
>>> 亲爱的zhangsan,下次更幸运
通过结果不难看出,循环进行了8次,也就是列表的长度次。
所以,使用 break 可以立即退出while循环,不再运行循环中余下的代码,也不管条件测试的结果如何。
使用 break 语句来控制程序流程,可用来控制哪些代码行将执行、哪些代码行不执行,从而让程序按你的要求执行你要执行的代码。
在循环中使用 continue
continue 语句也十分的妙,它可以根据条件测试结果决定是否继续执行循环。
比如下面的列表中有重复的名字,让我们一起找出这些重复的名字都在哪些位置。
name_list = ['yeyiyi', 'shangyingyan', 'yeyiyi', 'lily', 'ann', 'yeyiyi', 'ningjie', 'ningzaichun', 'chaipaopao', 'fayi']
def getSelf(self):
index = 0
while index < len(name_list):
name_item = name_list[index]
index += 1
if self == name_item:
print(f'{self}在位置{index}')
continue
print(index)
getSelf('yeyiyi')
上面的代码,找到条件的元素会执行 continue 语句,继续进行下一轮循环。
需要查找的名字"yeyiyi"存在于位置1、3、6,if 语句中在找到名字的位置加了 continue,所以 if 语句中可以得到名称的位置。
而 if 语句外层的获取所有的位置值中,是不包含1、3、6三个位置的。
>>> yeyiyi在位置1
>>> 2
>>> yeyiyi在位置3
>>> 4
>>> 5
>>> yeyiyi在位置6
>>> >>> 7
>>> 8
>>> 9
>>> 10
总结
本篇主要是对 Python 中循环的学习和运用,同时还做了适当的功能延伸探索。
我最近在看一些用 Python 实现的项目源码,发现这个知识点的出镜率还挺高,掌握它们对实际开发会大有裨益。
作者介绍
非职业「传道授业解惑」的开发者叶一一。
《趣学前端》、《CSS畅想》等系列作者。华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏⭐️ | 留言📝。
- 点赞
- 收藏
- 关注作者
评论(0)