详细说一下 Python 的 while循环

i小码哥

共 3772字,需浏览 8分钟

 ·

2020-10-29 23:44


在上一篇文章中,我们介绍了 Python 三大控制结构


【小白学 Python】吃了一顿火锅,学会了 Python 三大核心控制结构:小心看饿了


今天,我们接着看一下 while 循环



01
什么是  While 循环?


Python提供了另一种循环模式即无限循环,不需要提前知道循环次数,


那就是while循环。


while循环一直执行,指导制定的条件不满足为止。


语法:


while 条件:
语句组11. 循环也是以冒号(:)结尾
2. 条件为各种算术表达式,
a) 当为真时,语句组1被重复执行
b) 当为假时,停止执行语句组13. 如果循环体忘记累计,条件判断一直为真,则为死循环。循环体一直实行。
a) 死循环有时候经常被用来构建无限循环
b) 此时,可以使用ctrl+c终止,或者停止IDE



来看一个例子:




# 构造计数器,记录5次
print('使用while循环构造计数器,并且记录5次')count_number = 0while count_number < 5: print(f'\t当前数字是 {count_number}') count_number += 1 使用while循环构造计数器,并且记录5
当前数字是 0
当前数字是 1
当前数字是 2
当前数字是 3
当前数字是 4

 

02
什么是用户输入?


为了更好的体验,程序有时候使用用户输入。


在 Python 中使用函数 input() 让程序暂停工作,等待用户输入后接着执行。


当使用该函数时,一定要给出清晰而易于明白的指示,否则用户不知道要输入什么内容。


例子
# 计算任意数的和, 并计算出平均数sum = 0.0count = 0more_number = "yes"
while "y" in more_number: # 使用y判断是否继续 number =int(input("请输入一个数字:")) sum = sum + number count = count + 1 more_number = input("还想接着输入数字吗?(y or n)?")
print("\n你输入的所有数字的平均值是:", sum / count) 请输入一个数字:1
还想接着输入数字吗?(y or n)?y
请输入一个数字:2
还想接着输入数字吗?(y or n)?y
请输入一个数字:3
还想接着输入数字吗?(y or n)?n
你输入的所有数字的平均值是:2.0



03
break与continue词句



break与continue语句可以在循环结构中使用,比如for,while。

break语句是立即退出while循环,不再运行循环中余下的代码,也不管条件判断的结果是否为真。


break语句经常被用来控制程序执行流,也就是控制哪些代码可以执行,哪些代码不执行。


continue语句是结束本次循环,返回到while语句开始的位置,接着条件判断。


如果为真,程序接着执行,否则退出。也就是当循环或判断执行到continue语句时,continue后的语句将不再执行,会跳出当次循环,继续执行循环中的下一次循环


两者的区别是:

continue 语句跳出本次循环,只跳过本次循环continue后的语句

break 语句跳出整个循环体,循环体中未执行的循环将不会执行


例子

# 点名系统,一共100个人。当数到50的时候,提示以下;当数到60时,停止报数for i in range(101):    if i == 50:        print(f'你是第{i}名,请接着报数......')        continue    # 如果是第60个人,则停止循环    if i == 60:        print(f'你是第{i}名,停止报数!')        break
你是第50名,请接着报数......
你是第60名,停止报数



04
使用while操作列表和词典


列表和字典可以存储大量信息。


for循环可以遍历其每一个元素或者键值对,但是我们不建议在for循环修改其值,否则导致Python不能正常运行;


如果遍历列表或字典的同时,修改其值,我们推荐使用while循环。


例子1while操作列表



'''《甄嬛传》之选秀1。首先创建一个秀女列表,其中魏璎珞不是参选秀女2。再创建一个空的列表,用来收集已经选中的秀女整个过程需要修改列表的元素'''xiu_nu = ['魏璎珞','甄嬛','安陵容','沈眉庄','夏春']ru_xuan = []
# 使用while循环选择秀女,直到选择结束# 把选中的修女收集起来,未选中的删除while xiu_nu: kaoshi_xuanyu = xiu_nu.pop() print(f"正在参加选秀的修女是:{kaoshi_xuanyu}") if '魏璎珞' in kaoshi_xuanyu: print(f'\t{kaoshi_xuanyu}不能参加本次选秀') else: print('\t恭喜 {} 入选'.format(kaoshi_xuanyu)) ru_xuan.append(kaoshi_xuanyu)
# 打印所有选中的秀女print('以下是选中的秀女人员名单:')for index in ru_xuan: print('\t'+index.title())
正在参加选秀的修女是:夏春
恭喜夏春入选
正在参加选秀的修女是:沈眉庄
恭喜沈眉庄入选
正在参加选秀的修女是:安陵容
恭喜安陵容入选
正在参加选秀的修女是:甄嬛
恭喜甄嬛入选
正在参加选秀的修女是:魏璎珞
魏璎珞不能参加本次选秀
以下是选中的秀女人员名单:
夏春
沈眉庄
安陵容
甄嬛


再看一个例子:例子2: while操作字典




''' 观众最喜欢的电视剧问卷调查'''# 构建空的字典,存放调查结果favorite_television = {}
while 1: # 构建一个无限循环 your_name= input("请输入你最喜欢的电视剧明星的名字:") favorite_televisions = input("请输入你最喜欢的他/她演过的电视剧名字:") favorite_television[your_name] = favorite_televisions another = input("是否还有人参与调查。如果输入yes,继续,否则停止:") if another != 'yes': break# 结束调查,打印结果print("观众最喜爱的电视剧问卷调查情况:")for key,value in favorite_television.items(): print(f'观众最喜欢的电视明星有:{key}。观众最喜欢的他/她演过的电视剧是 {value}.') 请输入你最喜欢的电视剧明星的名字:刘德华
请输入你最喜欢的他/她演过的电视剧名字:鹿鼎记
是否还有人参与调查。如果输入yes,继续,否则停止:yes
请输入你最喜欢的电视剧明星的名字:杨幂
请输入你最喜欢的他/她演过的电视剧名字:扶摇
是否还有人参与调查。如果输入yes,继续,否则停止:yes
请输入你最喜欢的电视剧明星的名字:秦岚
请输入你最喜欢的他/她演过的电视剧名字:延禧攻略
是否还有人参与调查。如果输入yes,继续,否则停止:no
观众最喜爱的电视剧问卷调查情况:
观众最喜欢的电视明星有:刘德华。观众最喜欢的他/她演过的电视剧是鹿鼎记.
观众最喜欢的电视明星有:杨幂。观众最喜欢的他/她演过的电视剧是扶摇.
观众最喜欢的电视明星有:秦岚。观众最喜欢的他/她演过的电视剧是延禧攻略.


以上就是 Python的循环结构。希望您能有所收获。


如果有问题,可以后台或留言讨论哦!

 以上内容摘自《零基础轻松学 Python》

零基础学 Python,看下嘛

 只需7天时间,跨进Python编程大门,已有3800+加入
【基础】0基础入门python,24小时有人快速解答问题;
【提高】40多个项目实战,老手可以从真实场景中学习python;
【直播】不定期直播项目案例讲解,手把手教你如何分析项目;
【分享】优质python学习资料分享,让你在最短时间获得有价值的学习资源;圈友优质资料或学习分享,会不时给予赞赏支持,希望每个优质圈友既能赚回加入费用,也能快速成长,并享受分享与帮助他人的乐趣。
【人脉】收获一群志同道合的朋友,并且都是python从业者
【价格】本着布道思想,只需 69元 加入一个能保证学习效果的良心圈子。
【赠予】价值109元 0基础入门在线课程,免费送给圈友们,供巩固
浏览 5
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报