哈罗,各位大朋友小朋友们,今天咱们继续准时开启带娃学编程之旅!
之前咱们和孩子一起死磕了 while 循环,虽然好用,但是不知道大家有没有发现,每次用它,都得先在外面建个“计数器”(比如 i = 0),还得在循环体里手动加上一句 i += 1。这要是哪天娃一粗心漏写了 i += 1,程序立马就会陷入死循环,电脑直接卡到怀疑人生!
别慌,今天咱们带孩子来解锁一个更聪明、更省心的循环神器——for 循环!
不过在请出这位大Boss之前,我们要先带孩子去 Python 的神奇道具店里,领两个超级好用的“数数小挂件”——range() 和 list()!
📦 挂件一:神奇的“数字传送带” —— range()
在生活中,老师经常会让孩子们数数:从 1 数到 10,或者只数单数(1, 3, 5...)。在数学里,这一排排有规律的数字排成一队,就叫做数列。
如果我们在程序里需要一大串数字,难道要手动一个个敲吗?当然不!Python 给我们准备了一个智能“数字传送带”函数:range(start, stop, step)。
大白话来说,它就像是一个数字加工厂,你只要告诉它三个暗号,它就能帮你源源不断地吐出数字:
start(起点):从哪个数字开始。如果不写,默认从 0 开始。
stop(终点):数到哪个数字结束。(敲黑板!这里同样有咱们之前学过的“包头不包尾”魔咒,数到终点的前一个数就会紧急刹车!)
step(步长/间隔):每次数数迈多大的步子。如果不写,默认是一步一个脚印(间隔为 1)。
给孩子举三个生动的例子:
range(5):省略了起点和步长,那就是从 0 开始数,数到 5 刹车。吐出的数字是:0, 1, 2, 3, 4。
range(1, 5):指定起点是 1,数到 5 刹车。吐出的数字是:1, 2, 3, 4。
range(1, 5, 2):起点是 1,数到 5 刹车,但每次要跳 2 步。吐出的数字是:1, 3。
🛒 挂件二:数字打包大礼包 —— list()
这时候,孩子可能会兴冲冲地去敲代码:print(range(5)),结果屏幕上并没有蹦出数字,而是冷冰冰地显示了一行 range(0, 5)。
孩子肯定会问:“妈妈,数字藏哪儿去了?” 因为 range() 只是个传送带,数字还在流水线上呢!如果我们想把这些数字一眼看清,就得拿个大箱子把它们打包接住。这个箱子就是咱们上几节课刚学过的列表(List),而把传送带上的数字变成列表的魔法就是 list() 函数!
把它们组合在一起,神奇的事情就发生了:
# 1秒生成 0 到 99 的超长列表
list1 = list(range(100))
print(list1)
💡 陪娃名场面:我带儿子试完这个后,给他出了一道题:“儿子,如果我们想找出 0 到 99 里面,所有能被 7 整除的‘幸运数字’,并把它们列成一个表,怎么写?” 儿子眼珠子一转:“那起点是 7,每次跳 7 步,终点写 100 让他刹车!” 敲下这行代码:list1 = list(range(7, 100, 7)) 打印出来一看,果然全对!孩子那成就感,简直要爆棚了!
🚀 主角登场:优雅的效率大师 —— for 循环
有了前面两个挂件的铺垫,接下来请出我们的主角 for 循环!
大白话解释,for 循环就像是一个排队点名的自动化机器人。只要你给它一队排好序的数字或者列表,它就会自己从头到尾,把里面的每一个宝贝依次拿出来点名,点完为止,绝不偷懒,也绝对不会死循环!
它的标准暗号格式是:
for 变量 in 序列:
要做的事情(循环体)
比如,我们要让程序乖乖打印 5 次“我爱编程”:
# range(5) 吐出 0,1,2,3,4 这 5 个数字排好队
for i in range(5):
print("我爱编程!") # 机器人每点到一个数字,就大喊一声
不需要加个
i = 0,也不需要写 i += 1,变量 i 自己就会跟着传送带一个个往下数,是不是超级优雅?📝 今日带娃成就卡
今天,咱们带孩子解锁了循环家族里最优雅、最省心的成员:
新核心: 学会了用 range() 制造各种奇妙的数字队伍。
组合拳: 懂得了用 list(range()) 把数字流水线一键打包成看得见的列表。
大招: 掌握了 for 循环的自动点名机制,彻底告别由于漏写变量自增而导致的死循环噩梦!