前言
今天呢,给大家分享一下 while 循环的知识,相信大家小时候都有被老师罚过抄写课本的情况,一写就写好多遍,苦不堪言啊…这就是所谓的循环了,重复反复。我印象曾经有位同学拿两支笔一块写,更离奇的是他不是像普通人那样一只手拿两支笔,他是左右开弓,现在想想也是位神人…好了,话不多说,开始我们今天的任务吧。
一、While 循环
1.1 理解循环
- 在生活中,重复反复的事情就是循环(可以参考前言中讲的真实小故事)
- 在Python中叫做流程控制语句。
- 基本循环格式
while 条件:
- 举个简单的例子
- 情人节要对女朋友是不是要说点什么,肉肉麻麻类的话~
- 只说一遍显得很没有诚意,说很多遍又很累怎么办,这个时候就要用到我们学到的知识了
i = 0
while i < 10:
print('XXX超级超级喜欢你,嘴上三分,心里十分。')
print('遇见你之前,我没想过结婚,遇见你之后,结婚我没想过别人。')
print('你问我有多爱你,大概就是,再遇见你一百次,也会沦陷一百次。')
print('我还是很喜欢你,像盛夏的阳光普照,不留余地。')
print('我想把世界都给你,惯到生活不能自理。')
i += 1
运行结果:
XXX超级超级喜欢你,嘴上三分,心里十分。
遇见你之前,我没想过结婚,遇见你之后,结婚我没想过别人。
你问我有多爱你,大概就是,再遇见你一百次,也会沦陷一百次。
我还是很喜欢你,像盛夏的阳光普照,不留余地。
我想把世界都给你,惯到生活不能自理。
XXX超级超级喜欢你,嘴上三分,心里十分。
遇见你之前,我没想过结婚,遇见你之后,结婚我没想过别人。
你问我有多爱你,大概就是,再遇见你一百次,也会沦陷一百次。
我还是很喜欢你,像盛夏的阳光普照,不留余地。
我想把世界都给你,惯到生活不能自理。
XXX超级超级喜欢你,嘴上三分,心里十分。
遇见你之前,我没想过结婚,遇见你之后,结婚我没想过别人。
你问我有多爱你,大概就是,再遇见你一百次,也会沦陷一百次。
我还是很喜欢你,像盛夏的阳光普照,不留余地。
我想把世界都给你,惯到生活不能自理。
...........
1.2 案例集锦
- 计算计算 1~100 之间所有偶数的和
i = 1
SumResult = 0
while i <= 100:
SumResult += i
i += 1
print(f'1-100累加的和是{SumResult}')
- 计算 1~100 之间所有偶数的和
i = 1
SumResult = 0
while i <= 100:
if i % 2 == 0 :
SumResult += i
i += 1
print(f'1~100之间所有偶数累加的和是{SumResult}')
二、 退出循环
2.1 理解
- python中有两个关键字
- break:直接终止整个循环,结束。over
- continue:终止本次循环,继续下一次的循环。
还有调用系统命令终止循环的,不建议大家使用,需要知道这个东西就好,分别是quit() exit()。
2.2 简单案例
- 被罚操场跑10圈,每跑一圈喊1次“我错了”,后来决定,第5圈跑完就可以结束了
count = 0
while count < 10:
if count == 5:
break
print('我错了')
count += 1
我错了
我错了
我错了
我错了
我错了
- 输出 0 1 2 3 4 6 7 8 9 数字,没有5
i = 0
while i < 10:
if i == 5:
i += 1
continue
print(i)
i += 1
0
1
2
3
4
6
7
8
9
三、while循环嵌套
3.1 应用场景
给大家讲个小故事也许就懂了,一天学校里一对小情侣吵架了,那个女朋友呢就要求她男朋友围着操场跑圈,每跑一圈喊三遍"我错了",还要跑够100圈!这时思考一下运用循环语句该怎么写?
i = 1
while i <= 100:
print(f'跑了{i}圈了')
J = 0
while J < 3:
print('我错了')
J += 1
i += 1
跑了1圈了
我错了
我错了
我错了
跑了2圈了
我错了
我错了
我错了
跑了3圈了
我错了
我错了
我错了
跑了4圈了
我错了
我错了
我错了
......
跑了95圈了
我错了
我错了
我错了
跑了96圈了
我错了
我错了
我错了
跑了97圈了
我错了
我错了
我错了
跑了98圈了
我错了
我错了
我错了
跑了99圈了
我错了
我错了
我错了
跑了100圈了
我错了
我错了
我错了
Process finished with exit code 0
- 打印5行4列的"*"
i = 0
while i < 5:
J = 0
while J < 5:
print('*',end = ' ')
J += 1
print()
i += 1
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
- 打印乘法表
i = 1
while i <= 9:
J = 1
while J <= i:
print(f'{J}*{i}={J * i}',end='\t')
J += 1
print()
i += 1
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
四、任务清单
- 张三有个习惯,每天要吃100只冰淇淋,而且吃完第50个后,都会去一趟洗手间,回来再接着吃。
- 编程实现
- 吃冰淇淋的时候,在控制太台打印”这是今天吃的第n个冰淇淋了“
- 去洗手间的时候,在控制台打印“先去趟洗手间,回来再吃”
Eat = 1
while Eat <= 100:
print(f'这是今天吃的第{Eat}个冰淇淋了')
Eat += 1
if Eat == 51:
print('先去趟洗手间,回来再吃')
continue
......
这是今天吃的第47个冰淇淋了
这是今天吃的第48个冰淇淋了
这是今天吃的第49个冰淇淋了
这是今天吃的第50个冰淇淋了
先去趟洗手间,回来再吃
这是今天吃的第51个冰淇淋了
这是今天吃的第52个冰淇淋了
这是今天吃的第53个冰淇淋了
这是今天吃的第54个冰淇淋了
.....
- 张三每天都计划吃100只冰淇淋,但每次吃完第50个后,都会去一趟洗手间,回来之后就不吃了。
- 编程实现
- 吃冰淇淋的时候,在控制太台打印”这是今天吃的第n个冰淇淋了“
- 去洗手间的时候,在控制台打印“先去趟洗手间,回来可不吃了”
Eat = 1
while Eat <= 100:
print(f'这是今天吃的第{Eat}个冰淇淋了')
Eat += 1
if Eat == 51:
print('先去趟洗手间,回来可不吃了')
break
....
这是今天吃的第41个冰淇淋了
这是今天吃的第42个冰淇淋了
这是今天吃的第43个冰淇淋了
这是今天吃的第44个冰淇淋了
这是今天吃的第45个冰淇淋了
这是今天吃的第46个冰淇淋了
这是今天吃的第47个冰淇淋了
这是今天吃的第48个冰淇淋了
这是今天吃的第49个冰淇淋了
这是今天吃的第50个冰淇淋了
先去趟洗手间,回来可不吃了
Process finished with exit code 0
- 输出 1-100 之间的所有偶数
Number = 1
while Number <= 100:
if Number % 2 == 0:
print(Number)
Number += 1
76
78
80
82
84
86
88
90
92
94
96
98
100
Process finished with exit code 0
- 张三出差去上海35天,但中间每工作5天,会回家2天
Day = 35
Number = Day / (5 + 2)
"""
题目说明每工作5天,会回家2天
那么就是说明每次有7天的时间是在总共35天的时间规划安排,
我们来计算有多少次,35/7=5 次
所以,不管怎么说,张三只能工作5次(每次5天),回家也是5次(每次2天)
"""
Work = Number * 5
print(f'张三在上海一共呆了{int(Work)}天')
张三在上海一共呆了25天
- 张坤在全国举办了32场演唱会,第一场观众是1000人,往后每举办一场,观众人数就减少10人
Number = 1
Person = 1000
while Number <= 32:
Number += 1
Person -= 10
if Number == 32:
print(f'最后一场演唱会,观众人数是{Person}')
最后一场演唱会,观众人数是690
- 猜年龄游戏
- 假设真实年龄是10岁
- 让用户输入猜测的年龄
- 猜测正确,输出“恭喜,猜对了”,并退出程序
- 猜测错误,输出“再来1次”
- 允许用户最多尝试3次,3次都没有猜对,输出“抱歉,您的次数超过三次”,然后直接退出程序
Number = 1
while Number <= 3:
Age = int(input('输入猜测的年龄:'))
Number += 1
if Age == 10:
print('恭喜,猜对了')
break
elif Number > 3:
print('抱歉,您的次数超过三次')
break
输入猜测的年龄:5
输入猜测的年龄:6
输入猜测的年龄:8
抱歉,您的次数超过三次
输入猜测的年龄:6
输入猜测的年龄:10
恭喜,猜对了
输入猜测的年龄:9
输入猜测的年龄:6
输入猜测的年龄:10
恭喜,猜对了
输入猜测的年龄:10
恭喜,猜对了
- 实现“鸡兔同笼”
- 有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔
Feet = 94
Head = 35
Rabbit = Feet / 2 - 35
Chicken = Head - Rabbit
print(f'笼中各有{int(Chicken)}只鸡{int(Rabbit)}只兔')
笼中各有23只鸡12只兔
总结
爬行中…
|