循环嵌套就像叠罗汉一样,能帮我们轻松搞定那种“套娃”一样的复杂数学题。

循环嵌套就像是叠罗汉一样,能帮我们轻松搞定那种“套娃”一样的复杂数学题。上回咱们刚搞定单个 for 循环,只能打印一行星星,可现实里的题常常是多米诺骨牌似的一环扣一环。循环嵌套就是把“单循环”变成“立体”的魔法,无论是矩形、三角形还是九九乘法表,甚至是百僧分馒头这种难题,都能被一键秒解。 先来聊聊循环嵌套的官方说法。就是在一个循环里面再写一个循环,外层循环负责搭个舞台,内层循环在上面唱戏。说白了,内层循环会按固定次数完整地执行一遍,外层每执行一次,内层就得从头唱一遍。这就好比地球公转一年一圈,内层循环像地球自转一天 365 圈。写代码的时候千万别忘记缩进四个空格,Python 才能明白谁是谁的子循环。 现在咱们开始实战演练,先打印两颗星星热热身。先看矩形星星阵:固定行数乘以固定列数。外层循环控制行数,内层循环控制每行的星星数。比如这个例子里外层跑 3 次,内层每次跑 4 次。每次打印完一行就换行。把 end=' ' 里的空格换成别的符号,就能画出不同的图案,先练练手感。 再看直角三角形:让星星一边走一边数。外层循环还是控制行数,内层循环的星星数等于行数加 1。因为行数从 0 开始算的嘛,加 1 就正好对应当前行的星星数。 进阶一点的九九乘法口诀表也不难拆分两步:外层循环控制行(1 到 9),也就是口诀的第二个数;内层循环控制列(1 到当前行数),也就是口诀的第一个数还有结果。用 f-string 拼接字符串就能让对齐看起来整齐多了。 应用题也能轻松拿下百僧分百馒这个老难题(单变量版)。题目条件很简单:总共有 100 个人和 100 个馒头。大和尚吃 3 个,小和尚吃 1/3 个。思路就是用 for 循环遍历大和尚的可能取值(1 到 100),算出小和尚数量后验证馒头总数对不对。找到符合条件的组合就直接 break 终止循环。 再看升级版的百僧分百馒(双变量版),题目加了个老和尚变量。做法还是遍历所有可能组合并实时验证。因为答案不止一个,所以内层循环必须嵌套在外层循环里才行。这次三条式子同时成立才能输出组合数据哦。 OK,今天的循环嵌套就学到这里了。学会了吗?多写多练才能熟能生巧。文章底部有课后练习题等着你呢。觉得有用的话点个赞转发一下吧。