目标
- 了解循环
- while语法【重点】
- while应用
- break和continue
- while循环嵌套【重点】
- while循环嵌套应用【难点】
- for循环
一、循环简介
1.1循环的作用
● 思考:假如我有个女朋友,有一天我们矛盾生气了,女朋友说:道歉,说100遍“媳妇儿,我错了”这个时候程序员会怎么办?
○ 答;100遍 print('媳妇儿,我错了')
● 思考:复制粘粘100次吗?
○ 答:重复执行100次一样的代码,程序组循环即可
循环的作用:让代码更高效的重复执行。
1.2 循环的分类
在python中,循环分为 whlie 和 for 两种,最终实现效果相同。
二、 while的语法
while 条件:
条件成立要重复执行的代码1
条件成立要重复执行的代码2
2.1 快速体验
需求:复现重复执行100次print(‘媳妇儿,我错了’)(输出更简洁一些,我们这里设置5次)
分析:初始值是0次,终点是5次,重复做的事情输出“媳妇儿,我错了”。
代码如下:
#需求:重复打印5次媳妇儿,我错了--1.2.3.4.5.6x----数据表示循环的次数--=第一次是1.最后依次5
#1+1+1+1.....
# 循环计数器
#计算机世界里 0 也是一个数
i = 0
while i < 5: #也可以写作代码; while i <= 4
print('媳妇儿,我错了')
i += 1 #i= i + 1
print('任务结束')
2.1 while扩展知识:
当while循环 执行流程完成,才去执行下面代码。
三、 while 的应用
3.1 应用一:计算1-100累加和
分析:1-100的累加和,即1+2+3+4+5...即前两个数字的相加结果+下一个数字(前一个数字+1)
# 需求:1-100数字累加和--1+2+3+4+5.。。。100=结果,打印结果
'''
1.准备做加法运算的数据1-100 增量为1
2.准备变量保存将来运算的结果
3.循环做加法运算
4.打印结果
5.验证结果正确性
'''
# 准备数据
i = 1
#结果变量
result = 0
# 循环
while i < 101:
result = result + i
i += 1
# 打印结果----输出结果 5050
print(result)
注意:为了验证程序的准确性,可以先改成小数值,验证结果正确后,在改成1-100累加。
3.2 应用二:计算1-100偶数累加和
分析:1-100的偶数做累加和,即 2+4+6+8.。。。 得到偶数方法如下:
● 偶数即是和2取余结果为0的数字,可以加入条件语句判断是否为偶数,为偶数则累加
●初始值为0/2,计数器每次累加2
3.2.1 方法一:条件判断和2取余数则累加
#需求:1-100偶数累加和---2+4+6+8+10.。。。100=结果--输出结果
'''
1.准备累加和的数字 开始1 结束100 增量1
2.准备保存结果的变量 resulit
3.循环加法运算--如果是偶数才做加法运算---和2 取余为0
4.验证结果
5.验证结果
'''
i = 1
result = 0
while i <= 100:
#条件语句--if
if i % 2 == 0:
# 加法运算
result += i # result = result +i
# i 不能缩进到 if 语句里,因为需要每次循环都+1
i += 1
print(result)
3.2.2 方法二:计数器控制
# 计数器控制 让偶数累加
'''
1.准备累加的数据
2.准备存储结果的变量
3.循环计算
4.输出结果
5.
'''
i = 0
result = 0
while i <= 100:
result += i
i += 2
print(result)
● 程序的结束方法
四、break和continue
break和continue 是循环中满足一定条件推出循环的两种不同方式。
4.1理解
举例:一共吃5个苹果,吃完第一个,吃第二个。。。 这里“吃苹果”的动作是不是重复执行?
情况一:如果吃的过程中,吃完第三个吃饱了,则不需要再吃第四个和第五个苹果,即吃苹果的动作停止,这里就是break控制循环流程,即终止次循环。
举例二:如果吃的过程中,吃到第三个苹果吃出一个大虫子。。。。是不是这个苹果就不吃了,开始吃第四个苹果,这里就是continnue控制循环流程,即退出当前一次循环继而下一次循环代码。
4.1.1 情况一:break (break特点:当某些条件成立,终止此循环)
# break: 当条件成立了,退出整个循环
#循环吃5个苹果,吃完第三个吃饱了 第4和第5 不吃了(不执行)--- ==4 或 >3
i = 1
while i <= 5:
#条件:吃到第三个苹果吃饱了不吃了。打印吃饱了
if i ==4:
print('吃饱了,不吃了')
break
print(f'吃了{i}个苹果')
i += 1
4.1.2 情况二:continnue (continnue特点:退出当前一次循环继而下一次循环代码)
● 如果使用continnue,在continnue之前一定要修改计数器.否则进入死循环
# continnue:当条件成立时 退出当前一次循环,继而执行下一次循环
#吃五个苹果--循环;吃到第3个苹果,吃出一个大虫子 不吃了,没吃饱,继续吃第4和第5个苹果----只有第三个不吃
i = 1
while i <= 5:
#条件
if i == 3:
print('吃出一个大虫子,我不吃')
# 如果使用continnue,在continnue之前一定要修改计数器.否则进入死循环
i += 1
continue
print(f'吃了{i}个苹果')
i += 1
五、while 循环嵌套
5.1应用场景
故事梗概:有天女朋友生气了,惩罚:说3遍“”媳妇,我错了” 这个程序是不是可以循环?但如果女朋友说:还要刷今天的碗,这个程序怎么写?
while 条件:
print('媳妇儿,我错了')
print('刷晚饭的碗')
但如果女朋友还是生气,把这套惩罚要连续3天都要执行呢,有如何抒写程序?
while 条件:
while 条件:
print('媳妇儿,我错了')
print('刷晚饭的碗')
5.2 语法
while 条件1:
条件1成立执行的代码
....
while 条件2:
条件2成立执行的代码
.....
总结:所谓while循环嵌套,就是一个while里面嵌套一个while写法,每个while和之前基础语法是相同的。
5.3快速体验:复现场景
5.3.1 代码
'''
1.循环打印3次 媳妇 我错了
2.刷晚饭的碗
3.上面是一套惩罚要重复执行三天
'''
j = 0
while j < 3:
i = 0
while i < 3:
print('媳妇,我错了')
i += 1
print('刷晚饭的碗--------------------')
j += 1
5.3.2 执行结果
5.3.3 理解执行流程
当内部循环执行完成后,再执行下一次外部循环的条件判断
六、while循环嵌套应用
6.1 应用一:打印星号(正方形)
- *****
- *****
- *****
- *****
- *****
6.1.2 代码
分析:一行输出5个型号,重复打印5行
'''
1.打印一个1星
2.一行5个:循环--5个星星在一行显示
3.打印5行星星:循环--一行5个
'''
#重复打印5行星星
j = 0
while j <= 4:
# 一行星星打印
i = 0
while i <= 4:
#一行内的星星不能换行,取消print默认结束符\n
print('*',end='')
i += 1
#每行结束要换行,这里借助一个空的print,利用print默认结束符换行
print()
j += 1
6.2 应用二:打印星号(三角形)
6.2.1需求
- *
- **
- ***
- ****
- *****
6.2.2代码
#三角形:每行星星的个数和行号相等
#重复打印5行星星
# j表示行号
j = 0
while j < 5:
# 一行星星打印
i = 0
# i表示每行里面星星的个数,这个数字要和行号相等所以i和j联动
while i <= j:
#一行内的星星不能换行,取消print默认结束符\n
print('*',end='')
i += 1
#每行结束要换行,这里借助一个空的print,利用print默认结束符换行
print()
j += 1
6.3 九九乘法表
6.3.1执行结果
6.3.2代码
'''
1.打印一个乘法表达式 x*x=x*x
2.打印一行多个表达式,--一行表达式个数与行号相等---循环:一个表达式----不换行
3.打印多个表达式---循环-----换行
**** 一行表达式的个数和行号相等
'''
#重复打印9行表达式
j = 1
while j <= 9:
#打印一行里面的表达式 a * b=a*b
i = 1
#i与j的联动 print结束符\t(制表符)美化
while i <= j:
print(f'{i}*{j}={i*j}',end='\t')
i += 1
print()
j += 1