详细说一下 Python 的 while循环
在上一篇文章中,我们介绍了 Python 三大控制结构
【小白学 Python】吃了一顿火锅,学会了 Python 三大核心控制结构:小心看饿了
今天,我们接着看一下 while 循环
Python提供了另一种循环模式即无限循环,不需要提前知道循环次数,
那就是while循环。
while循环一直执行,指导制定的条件不满足为止。
语法:
while 条件:
语句组1
1. 循环也是以冒号(:)结尾
2. 条件为各种算术表达式,
a) 当为真时,语句组1被重复执行
b) 当为假时,停止执行语句组1
3. 如果循环体忘记累计,条件判断一直为真,则为死循环。循环体一直实行。
a) 死循环有时候经常被用来构建无限循环
b) 此时,可以使用ctrl+c终止,或者停止IDE
来看一个例子:
# 构造计数器,记录5次
print('使用while循环构造计数器,并且记录5次')
count_number = 0
while count_number < 5:
print(f'\t当前数字是 {count_number}')
count_number += 1
使用while循环构造计数器,并且记录5次
当前数字是 0
当前数字是 1
当前数字是 2
当前数字是 3
当前数字是 4
为了更好的体验,程序有时候使用用户输入。
在 Python 中使用函数 input() 让程序暂停工作,等待用户输入后接着执行。
当使用该函数时,一定要给出清晰而易于明白的指示,否则用户不知道要输入什么内容。
例子
# 计算任意数的和, 并计算出平均数sum = 0.0
count = 0
more_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
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名,停止报数
!
列表和字典可以存储大量信息。
for循环可以遍历其每一个元素或者键值对,但是我们不建议在for循环修改其值,否则导致Python不能正常运行;
如果遍历列表或字典的同时,修改其值,我们推荐使用while循环。
例子1 :while操作列表
'''
《甄嬛传》之选秀
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的循环结构。希望您能有所收获。
如果有问题,可以后台或留言讨论哦!
【提高】40多个项目实战,老手可以从真实场景中学习python;
【直播】不定期直播项目案例讲解,手把手教你如何分析项目;
【分享】优质python学习资料分享,让你在最短时间获得有价值的学习资源;圈友优质资料或学习分享,会不时给予赞赏支持,希望每个优质圈友既能赚回加入费用,也能快速成长,并享受分享与帮助他人的乐趣。
【人脉】收获一群志同道合的朋友,并且都是python从业者
【价格】本着布道思想,只需 69元 加入一个能保证学习效果的良心圈子。
评论