Day04 课程(while & break & continue & for & 嵌套)
课程:https://www.bilibili.com/video/BV1o4411M71o?spm_id_from=333.788.videopod.episodes&p=66
4.1 循环章节课程介绍
4.1.1 目标
了解循环
while语法【重点】
while应用
break和continue
while循环嵌套【重点】
while循环嵌套应用【重点】
for循环
4.2 了解循环
4.2.1 循环的作用
思考:假如有女朋友,有一天闹矛盾生气了,女朋友说:道歉,说100遍“媳妇儿,我错了”,这个时候程序员会怎么做?
答:100遍print("媳妇儿,我错了")
思考:复制粘贴100次吗?
答:重复执行100次一样的代码,程序中使用循环既可
循环的作用:让代码更高效的重复执行
4.2.2 循环的分类
在 Python 中,循环分为 while 和 for 两种,最终实现效果相同
4.3 while的语法和体验
4.3.1 while 的语法
while 语法: 条件成立重复执行的代码1 条件成立重复执行的代码2 ......
4.3.2 快速体验
需求:复现重复执行100次print("媳妇儿,我错了")(输出更简洁一些,这里设置了5次)
分析:初始值是 0 次,终点是 5 次,重复做的事情输出“媳妇儿,我错了”
i = 1 while i <= 5: print("媳妇儿,我错了") i += 1 # i = i + 1 ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day04\01-while语法.py 媳妇儿,我错了 媳妇儿,我错了 媳妇儿,我错了 媳妇儿,我错了 媳妇儿,我错了 Process finished with exit code 0
4.4 计数器书写习惯
i = 0 # 工作中,开始一般取 0,因为计算机中从0开始计数 while i < 5: # 取5,与需求相对应,容易理解,当不取5,也可以 <= 4 print("媳妇儿,我错了") i += 1 # i = i + 1 ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day04\02-循环计数器的书写习惯.py 媳妇儿,我错了 媳妇儿,我错了 媳妇儿,我错了 媳妇儿,我错了 媳妇儿,我错了 Process finished with exit code 0
4.5 循环的执行流程
注意:随着多次按 ③下一步,i 是随着循环增加的,直到当 i 加到5,不符合循环的条件,跳出循环,再按照从上向下的循序执行代码

4.6 循环应用1-100累加
分析:1-100 的累加和,即 1+2+3+4...,即前两个数字的相加结果 + 下一个数字(前一个数字 + 1)
注意:为了验证程序的准确性,可以先改小数值,验证结果正确后,再改成1-100做累加
# 准备数据 i = 0 # 结果接收的变量 result = 0 # 循环 while i < 101: result += i # result = result + i i += 1 # i = i + 1 # 打印最终结果 print(result) ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day04\03-循环应用1之1-100累加和.py 5050 Process finished with exit code 0
4.7 循环应用 1-100偶数累加和方法1
分析:1-100的偶数和,即 2 + 4 + 6 + 8....,得到偶数的方法如下:
偶数即是和2取余结果为0的数字,可以加入条件语句判断是否为偶数,为偶数则累加
初始值为 0 / 2,计数器每次累加2
# 需求;1-100 数字偶数累加和 -- 2+4+6...+100 =结果 -- 输出结果 # 准备数据 i = 1 # 结果接收的变量 result = 0 # 循环 while i < 101: if i % 2 == 0: # 除2余为0,则进行相加 result += i # result = result + i i += 1 # i = i + 1 # 打印最终结果 print(result) ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day04\04-循环应用1之1-100偶数累加和.py 2550 Process finished with exit code 0
4.8 循环应用 1-100偶数累加和方法2
4.8.1 循环计数器方法
i = 0 result = 0 # 循环 while i < 101: result += i # i = i + 1 i += 2 # 直接以 0 + 2 .... 加偶数的方式 # 打印最终结果 print(result) ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day04\05-循环应用1之1-100偶数累加和计数器控制.py 2550 Process finished with exit code 0
4.8.2 两种方法对比
# 第一种 i = 1 result = 0 while i < 101: if i % 2 == 0: # 除2余为0,则进行相加 result += i # result = result + i i += 1 # i = i + 1 print(result) ------------------------------------------------ # 第二种 i = 0 result = 0 while i < 101: result += i # i = i + 1 i += 2 # 直接以 0 + 2 .... 加偶数的方式 print(result)
4.8.3 总结
第一种方法更好,是使用程序去计算,而第二种,是通过人大脑的计算公式去计算的
推荐:第一种计算机方式计算
4.9 循环的注意事项
# 一定要为循环定义出口 i = 0 result = 0 # 循环 while i < 101: result += i # i = i + 1 # i += 2 # 当被注释掉或者漏写 # 打印最终结果 print(result) ------------------------------------------------ 执行后陷入死循环,点击红色方块,结束键结束 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day04\05-循环应用1之1-100偶数累加和计数器控制.py Traceback (most recent call last): File "D:\Pycharm\code\day04\05-循环应用1之1-100偶数累加和计数器控制.py", line 4, in <module> while i < 101: ^^^^^^^ KeyboardInterrupt Process finished with exit code -1073741510 (0xC000013A: interrupted by Ctrl+C)
4.10 了解break和continue
break 和 continue 是循环中满足一定条件退出循环的两种方式
4.10.1 理解
举例:一共吃5个苹果,吃完一个,吃第二个...,这里"吃苹果"的动作是不是重复执行?
情况一:如果吃的过程中,吃完第三个吃饱了,则不需要再吃第4个和第5个苹果,即是吃苹果的动作停止,这里就是 break 控制循环流程,即 终止此循环
情况二:如果吃的过程中,吃到第三个吃出一个大虫子...,是不是这个苹果就不吃了,开始吃第四个苹果,这里就是 continue 控制循环流程,即 退出当前一次循环继而执行下一次循环代码
4.11 break
# break; 当某些条件成立,退出整个循环 i = 1 while i < 6: if i == 4: print(f"吃饱了,不吃了") break # 终止循环 print(f"吃了 {i} 个苹果") i += 1 ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day04\06-吃苹果之break.py 吃了 1 个苹果 吃了 2 个苹果 吃了 3 个苹果 吃饱了,不吃了 Process finished with exit code 0
4.12 continue
# continue;当条件成立,退出当前一次循环,继而执行下一次循环 i = 1 while i < 6: if i == 3: print(f"吃出一个大虫子,这个苹果不吃了") # 如果使用 continue,在 continue 之前一定要修改计数器,否则进入死循环 i += 1 # 如果不增加 i += 1,continue 执行,i == 3 一直成立,陷入死循环 continue # 调到循环头部,再次进入循环 print(f"吃了第{i}个苹果") i += 1 ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day04\07-吃苹果之continue.py 吃了第1个苹果 吃了第2个苹果 吃出一个大虫子,这个苹果不吃了 吃了第4个苹果 吃了第5个苹果 Process finished with exit code 0
4.13 while循环嵌套的作用和语法
4.13.1 举例
故事梗概:有天女朋友生气了,惩罚"说3遍,我错了",这个程序是不是循环既可?但如果女朋友说:还要刷今天晚饭的碗,这个程序怎么书写?
while 条件: print("媳妇儿,我错了") print("刷晚饭的碗")
但如果女朋友还是生气,把这套惩罚要连续执行3天,如何书写程序?
while 条件: while 条件: print("媳妇儿,我错了") print("刷晚饭的碗")
4.13.2 语法
while 条件1: 条件1成立执行的代码 ...... while 条件2: 条件2成立执行的代码 ......
总结:所谓 while 循环嵌套,就是一个 while 里面嵌套一个 while 的写法,每个 while 和之前的基础语法是相同的
4.14 while循环嵌套快速体验
""" 1.循环打印3次媳妇儿,我错了 2.今天刷晚饭的碗 3.上面是一套惩罚,这一套惩罚要重复执行3天 -- 一套惩罚要重复执行 -- 放到一个while循环里面 """ j = 0 while j < 3: i = 0 while i < 3: print("媳妇儿,我错了") i += 1 print("刷晚饭的碗") print("一套惩罚结束了.....") j += 1 ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day04\08-while循环嵌套快速体验.py 媳妇儿,我错了 媳妇儿,我错了 媳妇儿,我错了 刷晚饭的碗 一套惩罚结束了..... 媳妇儿,我错了 媳妇儿,我错了 媳妇儿,我错了 刷晚饭的碗 一套惩罚结束了..... 媳妇儿,我错了 媳妇儿,我错了 媳妇儿,我错了 刷晚饭的碗 一套惩罚结束了..... Process finished with exit code 0
4.15 循环的执行流程
当内部循环执行完成之后,再执行下一次外部循环的条件判断

1.父循环条件 -> 判断真假 -> 假False -> 退出父循环
2.父循环条件 -> 判断真假 -> 真True -> 执行的代码1 -> 子循环条件 -> 判断真假 -> 假False -> 退出子循环 -> 进入①,判断父循环
3.父循环条件 -> 判断真假 -> 真True -> 执行的代码1 -> 子循环条件 -> 判断真假 -> 真True -> 子循环执行的代码 -> 进入②,判断子循环
4.16 while 循环嵌套应用之打印星号(正方形)
""" 1.打印1个星星 2.一行5个:循环 -- 5个星星在一行显示 3.打印5行星星,循环 -- 2 一行5个 """ i = 0 while i < 5: # 父循环,执行5行 j = 0 while j < 5: print( "*",end="") # 子循环,每行打印5个*,取消print默认结束符\n j += 1 print() # 利用默认的 end="\n" ,小循环后换行 i += 1 ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe "D:\Pycharm\code\day04\09-while 循环嵌套应用之打印星号(正方形).py" ***** ***** ***** ***** ***** Process finished with exit code 0
4.17 while 循环嵌套应用之打印星号(三角形)
# 三角形:每行星星的个数和行号数相等 j = 0 while j < 5: # 行号 i = 0 while i <= j: # * 号 与行号联动 print("*",end = "") i += 1 print() j += 1 ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe "D:\Pycharm\code\day04\10.while 循环嵌套应用之打印星号(三角形).py" * ** *** **** ***** Process finished with exit code 0
4.18 while循环嵌套应用之九九乘法表
# 多行多个乘法表达式 x * x = x*x j = 1 while j <= 9: # 行表达式 i = 1 while i <= j: # 行与列联动,控制列数与行数一致 print(f"{i} * {j} =",i * j ,end = "\t") # 前面显示数字,后面显示两数的商,也可以{i} * {j} ={i * j}, 列 \t 对齐 i += 1 print() # 每行打印完换行 j += 1 ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day04\11.while循环嵌套应用之九九乘法表.py 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 Process finished with exit code 0
4.19 for 循环语法和体验
4.19.1 语法
for 临时变量 in 序列: # 临时变量 程序员自定义,序列是数据序列,数据内部多个数据组成 重复执行的代码1 重复执行的代码2 ......
4.19.2 快速体验
str1 = 'itheima' for i in str1: # 数据序列里面是字符串中的字符 print(i) ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe "D:\Pycharm\code\day04\12.for 循环语法和体验.py" i t h e i m a Process finished with exit code 0
4.20 break退出for循环
str1 = 'itheima' for i in str1: if i == 'e': print("遇到e怎么办?") # e 后面不打印 break # break 终止整个循环 print(i) ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day04\13.break退出for循环.py i t h 遇到e怎么办? Process finished with exit code 0
4.21 continue退出for循环
str1 = 'itheima' for i in str1: if i == 'e': print("遇到e怎么办?") # 只是 e 不打印 continue # continue 终止当前循环 print(i) ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day04\14.continue退出for循环.py i t h 遇到e怎么办? i m a Process finished with exit code 0
4.22 循环的else简介
循环可以和 else 配合使用,else 下方缩进的代码指的是 当循环正常结束之后要执行的代码
4.23 while...else
需求:女朋友生气了,要惩罚,连续说5遍“媳妇儿,我错了”,如果道歉正常完毕女朋友就原谅我了,这个程序怎么写?
4.23.1 没有while...else时
i = 1 while i <=5: print("媳妇儿,我错了") i += 1 print("媳妇儿原谅我了......")
注意:第二个print,没有循环也仍然执行。
4.23.2 while...else语法
while 条件: 条件成立重复执行的代码 else: 循环正常结束之后要执行的代码
4.23.3 while...else案例
# 需求:道歉5遍媳妇我错了,完成之后执行媳妇原谅我了 i = 1 while i <= 5: print("媳妇儿,我错了") i += 1 else: # 与 while 有联系,while 不正常退出,下面不执行 print("媳妇儿原谅我了......") ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day04\15.while...else.py 媳妇儿,我错了 媳妇儿,我错了 媳妇儿,我错了 媳妇儿,我错了 媳妇儿,我错了 媳妇儿原谅我了...... Process finished with exit code 0
4.24 while...else之break
需求:女朋友生气,要求道歉5遍:媳妇儿,我错了,道歉到第三遍的时候,媳妇埋怨这一遍说的不真诚,是不是就要退出循环?这个退出有两种可能性:
1.更生气,不打算原谅,也不需要道歉了,程序如何书写
2.只一遍不真诚,可以忍受,继续下一遍道歉,程序如何书写
i = 1 while i <= 5: if i == 3: break # 终止循环,循环属于非正常结束 print("媳妇儿,我错了") i += 1 else: # 循环非正常结束,下面不执行 print("媳妇儿原谅我了......") ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day04\16.while...else之break.py 媳妇儿,我错了 媳妇儿,我错了 Process finished with exit code 0
注意:所谓 else 指的是循环正常结束之后要执行代码,即如果是 break 终止循环的情况,else 下方缩进的代码将不执行
4.25 while...else之continue
i = 1 while i <= 5: if i == 3: print("这遍说的不真诚!") i += 1 # 切记,continue 上面一定要 i += 1,否则 i = 3 一直成立 continue print("媳妇儿,我错了") i += 1 else: # 这次循环正常结束,下面执行 print("媳妇儿原谅我了......") ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day04\17.while...else之continue.py 媳妇儿,我错了 媳妇儿,我错了 这遍说的不真诚! 媳妇儿,我错了 媳妇儿,我错了 媳妇儿原谅我了...... Process finished with exit code 0
注意:因为 continue 是退出当前一次循环,继续下一次循环,所以该循环在 continue 控制下是可以正常结束的,当循环结束后,则执行 else 缩进的代码
4.26 for...else
4.26.1 for...else语法
for 临时变量 in 序列: 重复执行的代码 ...... else: 循环正常结束之后要执行的代码
注意:所谓 else 指的是循环正常结束之后要执行的代码,即如果是 break 终止循环的情况, else 下方缩进的代码将不执行
4.26.2 for...else案例
str1 = 'itheima' for i in str1: print(i) else: print("循环正常结束后执行的 else 的代码") ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day04\18.for...else.py i t h e i m a 循环正常结束后执行的 else 的代码 Process finished with exit code 0
4.27 for...else之break和continue
4.27.1 for...else之break
str1 = 'itheima' for i in str1: if i == 'e': print("遇到e怎么办?") # 不打印 e,同时也不打印 else 下方的代码,直接终止 for 循环 break print(i) else: # 正常退出才执行 print("循环正常结束后执行的 else 的代码") ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day04\19.for...else之break.py i t h 遇到e怎么办? Process finished with exit code 0
注意:没有执行 else 缩进的代码
4.27.2 for...else之continue
str1 = 'itheima' for i in str1: if i == 'e': print("遇到e怎么办?") # 不打印 e,但打印 else 下方的代码,介绍当前单个循环 continue print(i) else: # 正常退出 执行 print("循环正常结束后执行的 else 的代码") ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day04\20.for...else之continue.py i t h 遇到e怎么办? i m a 循环正常结束后执行的 else 的代码 Process finished with exit code 0
注意:因为 continue 是退出当前一次循环,继续下一次循环,所以该循环在 continue 控制下是可以正常结束的,当循环结束后,则执行 else 缩进的代码
4.28 总结
循环的作用:控制某句代码或某些代码重复执行
while 循环语法
while 语法: 条件成立重复执行的代码1 条件成立重复执行的代码2 ......
while 循环嵌套语法
while 条件1: 条件1成立执行的代码 ...... while 条件2: 条件2成立执行的代码 ......
for 循环语法
for 临时变量 in 序列: 重复执行的代码1 重复执行的代码2 ......
break 退出整个循环
continue 退出本次循环,继续执行下一次重复执行的代码
else
while 和 for 都可以配合 else 使用
else 下方缩进的代码含义:当循环正常结束后执行的代码,非正常结束不执行
break 终止循环,不会执行 else 下方缩进的代码
continue 退出本次循环的方式,执行 else 下方缩进的代码
注意:while 使用 continue 要在上方定义 i += 1 ,当前单次循环的出口
———————————————————————————————————————————————————————————————————————————
无敌小马爱学习
浙公网安备 33010602011771号