第五单元-for循环结构 课件 2026-2027学年高教版中职信息技术基础模块(下册)

| 15页
| 6人阅读
| 0人下载
普通

内容正文:

for i in range(10): for j in range(i): print(i, j) while condition: while inner: do_something() nested = True loops = 2 def outer(): def inner(): return 循环嵌套 NESTED LOOPS for × while 双层循环精讲 Python 3 课堂精讲 01 / 15 同学们好,今天我们来学习 Python 中一个非常重要的概念——循环嵌套。之前我们已经学过了 for 循环和 while 循环,今天我们要把它们组合起来,让程序能做更复杂的事情。 <#> 本节课你将学到 LEARNING PATH 1 回顾基础 复习 for 与 while 单循环基本语法 温故而知新 Step 1 · Review 2 理解嵌套 嵌套循环概念 for 与 while 语法 执行流程拆解 Step 2 · Concept 3 实战案例 九九乘法表 打印星号三角形 经典案例拆解 Step 3 · Practice 4 避坑总结 常见错误排查 课堂练习挑战 核心要点回顾 Step 4 · Review 02 / 15 本节课我们分四步走:先回顾一下单循环的基础,然后理解什么是嵌套循环、语法怎么写,接着用九九乘法表和星号三角形两个实战案例来练手,最后总结常见错误和练习。 <#> 回顾:你已经会的循环 REVIEW for 循环(计数循环) for_example.py for i in range( 5 ): print (i) 输出结果: 0 1 2 3 4 特点: 知道循环次数,自动计数 VS while 循环(条件循环) while_example.py i = 0 while i < 5 : print (i) i += 1 输出结果: 0 1 2 3 4 特点: 不知道次数,靠条件判断,手动更新 💡 思考:如果需要在一个循环里面再套一个循环,该怎么写? 03 / 15 先来回顾一下。左边是 for 循环,它是计数循环,知道要循环多少次,用 range 来控制,自动计数。右边是 while 循环,它是条件循环,不知道具体次数,靠条件判断,而且要手动更新计数器。大家想想,如果我们要打印一个九九乘法表,单循环够不够用? <#> 为什么需要嵌套循环? WHY NESTED? 外层走一步,内层走一圈 场景一:九九乘法表 9 行 × 每行不同数量 外层控制行数,内层控制列数 单循环只能打一行,打不了表 1×1=1 1×2=2 2×2=4 ... 三角形状 场景二:打印图形 三角形、矩形、菱形 每行星号数量随外层变化 嵌套 = 一层控制行,一层控制列 * * * * * * * * * 场景三:二维数据 二维列表、矩阵、棋盘 先遍历每一行,再遍历每行元素 这就是嵌套的典型用途 [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 一句话理解嵌套循环 外层循环(走一步) 内层循环(走一圈) 就像钟表:分针走一格,秒针要转完一整圈。 外层变量每变一次,内层就要从头到尾执行完所有次。 04 / 15 显然不够。单循环只能处理一维的、线性的任务。但现实中很多场景是二维的:比如九九乘法表有行有列,打印图形每行内容不一样,二维列表要先遍历行再遍历元素。这时候就需要嵌套循环——外层走一步,内层走一圈。就像钟表一样,分针走一格,秒针要转完一整圈。 <#> for 嵌套:语法结构 FOR NESTED SYNTAX for_nested.py ← 外层循环区域 for i in range( 3 ): # 外层:控制行数 ← 内层循环区域 for j in range( 3 ): print (f"i= {i} , j= {j} ") # 内层结束后,外层继续 print ("---") ⚠️ 关键规则 缩进决定层级:缩进多一级,就是内层循环的代码 语法要点 1 外层循环管"大方向" i 控制第几行,外层每走一步 内层就要从头执行完所有次 2 内层循环管"小细节" j 控制每行的第几个元素 内层循环是外层循环的"小跟班" 3 缩进是灵魂 Python 靠缩进判断层级 每层缩进 4 个空格,层级就清晰了 📝 记忆口诀 外一层,内一层,缩进多一级,里面再循环 05 / 15 来看 for 嵌套的标准写法。外层一个 for 循环,里面再缩进一个 for 循环。注意缩进很重要,Python 就是靠缩进来判断层级的。外层变量 i 控制大方向,比如第几行;内层变量 j 控制细节,比如每行的第几个元素。记住口诀:外一层,内一层,缩进多一级,里面再循环。 <#> for 嵌套:执行流程 EXECUTION FLOW 示例代码: for i in range( 2 ): for j in range( 3 ): print (i, j) 外层循环 i = 0, 1 i = 0(第1轮) 内层 j = 0, 1, 2(跑完整一圈) (0, 0) (0, 1) (0, 2) i = 1(第2轮) 内层 j = 0, 1, 2(又跑完整一圈) (1, 0) (1, 1) (1, 2) 执行规律 外层走一步,内层走完整一圈 i 每变一次,j 就要从 0 跑到 2,一个不落 总执行次数 = 外层次数 × 内层次数 本例:2 × 3 = 6 次,一共打印 6 行 内层先结束,外层才走下一步 内层没跑完,外层不会动,就像钟表秒针没转完,分针不走 06 / 15 那具体是怎么执行的呢?看这个例子,外层循环 2 次,内层循环 3 次。第一次 i=0 的时候,内层 j 从 0 跑到 2,执行完三次;然后 i 变成 1,内层又从头跑一遍,j=0、1、2。总共执行 2×3=6 次。关键规律:内层没跑完,外层不会动。 <#> 实战:九九乘法表 MULTIPLICATION TABLE multiplication_table.py 外层:控制第几行(i = 1~9) for i in range( 1 , 10 ): 内层:每行打印几个(j = 1~i) for j in range( 1 , i + 1 ): print (f" {j} × {i} ={i*j}", end=" \t ") print () # 一行打完换行 🔑 为什么内层是 range(1, i+1)? 第 1 行只打 1 个:1×1=1 第 2 行打 2 个:1×2=2 2×2=4 ... 第 9 行打 9 个,形成三角形 运行结果 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 💡 小技巧 end="\t" 让每个式子之间用制表符对齐,排版更整齐 07 / 15 来看最经典的例子——九九乘法表。外层 i 从 1 到 9,控制第几行。内层 j 从 1 到 i+1,为什么是到 i+1 呢?因为第 1 行只打 1 个式子,第 2 行打 2 个,...这样就形成了三角形。end="\t" 是让每个式子之间用制表符对齐,排版更整齐。大家看右边的运行结果,是不是就是我们熟悉的九九乘法表? <#> while 嵌套:语法结构 WHILE NESTED SYNTAX while_nested.py ← 外层 while 循环区域 i = 1 while i <= 3 : # 每次外层开始,内层计数器重置 ← 内层 while 循环区域 j = 1 while j <= 3 : print (i, j) j += 1 # 内层结束后,更新外层计数器 i += 1 ⚠️ 最大坑:两个计数器都要手动更新,忘了就死循环! while 嵌套要点 1 条件判断驱动 每次先判断条件是否成立 成立才执行,不成立就退出 2 计数器手动管理 外层有外层的 i,内层有内层的 j 每个循环自己更新自己的计数器 3 内层每次要重置 外层每走一步,内层 j 要从 1 开始 不重置的话,内层第二次就不跑了 和 for 嵌套的区别 for 自动计数,while 手动更新;结构一样,只是循环方式不同 08 / 15 再来看 while 嵌套。结构和 for 是一样的,外层 while 里面再放一个 while。但要注意几点:第一,两个计数器都要手动更新,外层 i 要自增,内层 j 也要自增,少一个就死循环;第二,每次外层循环开始前,内层计数器都要重置,从 1 开始,不能接着上次的值。 <#> while 嵌套:执行流程 WHILE FLOW 示例:打印 2 行 3 列星号 i = 1 # 外层行号 while i <= 2 : j = 1 # 内层列号 while j <= 3 : print("*", end=""); j+=1 外层 while(判断 i) i = 1(第1行) 内层 while(判断 j = 1,2,3) j=1 打印 * j=2 打印 * j=3 打印 * i = 2(第2行) 内层 while(j 重置为 1,再跑一遍) j=1 打印 * j=2 打印 * j=3 打印 * 和 for 的关键区别 每次都要先判断条件 for 自动计数到数就停,while 每次都要检查条件对不对 两个计数器都要更新 内层 j 自增,外层 i 也要自增,少一个就死循环 内层计数器要重置 外层每走一步,内层 j 都要从 1 开始,不能接着上次的值 09 / 15 while 的执行流程和 for 类似,但每次都要先判断条件。比如打印 2 行 3 列星号:i=1 时,判断 i<=2 成立,进入外层;然后 j=1,判断 j<=3 成立,打印星号,j 自增;j 跑到 4 的时候条件不成立,内层结束;然后 i 自增变成 2,再判断一次,内层再从头跑一遍。 <#> 实战:打印星号三角形 STAR TRIANGLE star_triangle.py i = 1 外层:控制行数(i = 1~5) while i <= 5 : j = 1 内层:每行星号数(j = 1~i) while j <= i: print ("*", end=" ") j += 1 print () # 一行打完换行 i += 1 🔑 为什么内层是 j <= i? 第 1 行打 1 个星,第 2 行打 2 个,... 第 5 行打 5 个 运行结果 * * * * * * * * * * * * * * 📐 规律 外层决定行数,内层决定每行星号数量 内层循环次数 = 外层变量值,就能画出渐变图形 💡 进阶思考 如果想打印倒三角形,内层条件应该怎么改? 10 / 15 再练一个例子——打印星号三角形。外层控制行数,i 从 1 到 5。内层控制每行星号的数量,j 从 1 到 i。这样第 1 行打 1 个星,第 2 行打 2 个,... 第 5 行打 5 个,就形成了三角形。大家思考一下,如果想打印倒三角形,内层条件应该怎么改? <#> for 嵌套 vs while 嵌套 COMPARISON for 嵌套 对比维度 while 嵌套 语法特点 自动计数,range 控制 简洁,不用手动更新 条件判断,手动更新 灵活,但要记得更新计数器 适用场景 知道循环次数 九九乘法表、打印矩阵、遍历列表 条件驱动的循环 游戏主循环、输入校验、直到满足条件 注意事项 安全,不容易错 主要注意缩进和 range 范围 容易踩坑 忘更新计数器 → 死循环! ✅ 选择原则:次数明确用 for,条件不确定用 while 11 / 15 那 for 和 while 到底怎么选呢?看这个对比表。for 适合知道循环次数的场景,语法简洁不容易错;while 适合条件驱动的场景,灵活但容易忘更新计数器导致死循环。记住原则:次数明确用 for,条件不确定用 while。 <#> 新手最容易踩的 3 个坑 COMMON ERRORS 1 缩进错误:内层代码没缩进去 for i in range(3): for j in range(3): print(i, j) # ❌ 内层for没缩进,变成外层只执行一次后才进内层 # ✅ 正确写法: for i in range(3): for j in range(3): print(i, j) 2 计数器忘更新:死循环! i = 1 while i <= 3: print (i) # ❌ 忘了写 i += 1,i 永远是 1,死循环! # ✅ 正确写法: i = 1 while i <= 3: print(i); i += 1 3 内外层变量搞混:用同一个变量名 for i in range(3): for i in range(3): print(i) # ❌ 两层都用 i,内层把外层的 i 覆盖了,逻辑全乱 # ✅ 正确写法: for i in range(3): for j in range(3): print(i, j) 12 / 15 新手最容易犯三个错误:第一,缩进错了,内层代码没缩进去,逻辑就乱了;第二,while 嵌套里忘了更新计数器,直接死循环;第三,内外层用了同一个变量名,内层把外层的值覆盖了,逻辑全乱。大家写代码的时候一定要注意这三点。 <#> 动手试一试 PRACTICE 🌟 基础 EASY 任务一:打印 4×4 星号矩阵 用 for 嵌套打印一个 4 行 4 列的星号矩形 提示:外层控制 4 行,内层每行打 4 个星号 🌟🌟 进阶 MEDIUM 任务二:用 while 嵌套打印倒三角形 打印 5 行倒三角形,第一行 5 个星,最后一行 1 个星 提示:外层从 5 倒数到 1,内层循环次数 = 外层变量 🌟🌟🌟 挑战 HARD 任务三:找出 1~100 之间的所有质数 外层遍历每个数,内层用嵌套循环判断它有没有其他因数 提示:质数 = 只能被 1 和自己整除,用内层循环检查 2~n-1 13 / 15 现在大家动手练一练。基础题:用 for 嵌套打印 4×4 的星号矩阵。进阶题:用 while 嵌套打印倒三角形。挑战题:找出 1 到 100 之间所有的质数。大家先从基础题开始做,做完的同学可以尝试挑战题。 <#> 核心要点回顾 SUMMARY 🔁 语法结构 外层套内层 缩进决定层级 每层缩进 4 空格 🔄 执行流程 外层走一步 内层走一圈 内层跑完外层才动 ⚖️ 怎么选择 次数明确用 for 条件定用 while 两个都能嵌套,看场景 ⚠️ 避坑三件事 缩进别错 计数器别忘了更新 内外变量别重名 嵌套循环 = 外层走一步,内层走一圈 Nested Loops: Outer steps once, inner runs a full round 14 / 15 最后总结一下今天的四个要点:第一,语法结构——外层套内层,缩进决定层级;第二,执行流程——外层走一步,内层走一圈;第三,怎么选择——次数明确用 for,条件定用 while;第四,避坑三件事——缩进别错、计数器别忘了更新、内外变量别重名。核心就一句话:嵌套循环 = 外层走一步,内层走一圈。 <#> for i in range(10): for j in range(i): print(i, j) while True: nested() 每一次循环,都是离目标更近一步 EVERY LOOP, ONE STEP CLOSER 下节课见 👋 Thank You 15 / 15 好,今天的内容就到这里。每一次循环,都是离目标更近一步。下节课见! <#> $

资源预览图

第五单元-for循环结构 课件 2026-2027学年高教版中职信息技术基础模块(下册)-第1页
1
第五单元-for循环结构 课件 2026-2027学年高教版中职信息技术基础模块(下册)-第2页
2
第五单元-for循环结构 课件 2026-2027学年高教版中职信息技术基础模块(下册)-第3页
3
第五单元-for循环结构 课件 2026-2027学年高教版中职信息技术基础模块(下册)-第4页
4
第五单元-for循环结构 课件 2026-2027学年高教版中职信息技术基础模块(下册)-第5页
5
第五单元-for循环结构 课件 2026-2027学年高教版中职信息技术基础模块(下册)-第6页
6

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。