当前位置:首页>python>周六下午,我和儿子用一小段Python做了个猜数字,他连玩了八局

周六下午,我和儿子用一小段Python做了个猜数字,他连玩了八局

  • 2026-09-02 18:51:45
周六下午,我和儿子用一小段Python做了个猜数字,他连玩了八局
【一句话读完】猜数字是最适合「第一个Python小作品」的游戏之一:规则一句话能说清,改一行就能看到反馈。孩子连玩八局,不是为了练语法,是为了确认——这东西真的听我的。
我做工程这些年,有一个偏见:
孩子学Python,最需要的不是第一节课就“学懂”,
而是第一次体验——
“我敲的东西,真的能变成一个能玩的东西。”
所以那个周六下午两点左右,客厅只开了一盏灯,
笔记本风扇嗡嗡响。
我们把目标定得很小:
不做界面,不追复杂,
就做猜数字。
结果他一口气玩了八局。
不是我在旁边催,
是他盯着屏幕说:
“再来一把。”
第三局他还嘟囔了一句:
“我就不信这一把还猜这么久。”
那一刻我就知道,
他不是陪我完成作业,
他是在跟规则较劲。

一、为什么偏偏是「猜数字」

很多家长一上来就想让孩子做“厉害的东西”。
我其实更在意一件事:
第一作品,能不能在一下午里完成,
并且孩子愿意玩第二遍。
猜数字的好处很朴素:
第一,规则一句话讲得清:
电脑想一个数,你来猜,告诉你大还是小。
第二,反馈特别快:
猜错了立刻知道往哪边走,
猜对了立刻有胜利感。
第三,它天然会用到Python里最早该碰的几样东西:
输入、输出、判断、循环、随机数。
不是先背定义,
而是孩子为了“让游戏跑起来”,自己去撞上这些概念。

二、那个下午我们怎么分工

我没装成老师,
我更像项目经理。
我只做三件事:
第一,把目标写清楚:
“今天我们要做出一个能玩的版本。”
第二,把步骤拆成他能接住的块:
先让程序能说话,
再让程序能随机出一个数,
再让他猜一次、给一次提示,
最后把“猜中为止”接成循环。
第三,我刻意留给他两件小事:
让他自己想“提示语怎么说更好玩”,
以及让他自己决定“数字范围是1到50还是1到100”。
你会发现,
当孩子觉得“这句话是我定的”,
他对作品的归属感会完全不一样。

三、代码不长,但思路比照抄重要(附注释版,约三十行)

我不建议家长一上来就追求完美工程化,
更建议先跑通。
我们那天的结构大致是这样(我用中文注释写清逻辑,方便你对着讲给孩子听):
1)随机一个答案
2)反复询问猜测
3)比较大小给提示
4)猜中后告诉他用了几次
5)问他要不要再来一局
下面这段是“能跑起来”的完整小版本(含再来一局;我加了中文注释,方便数行数、也方便你讲给孩子听):
import random# 外层 while:支持「再来一局」# 内层 while:一局里猜到猜中为止(小龄孩子若问,就一句话解释这两层)while True:    print("我想了一个 1 到 100 之间的整数,你来猜!")    secret = random.randint(1, 100)    count = 0    while True:        # 第一版我们直接用 int(input()),后来才处理「输入不是数字」的报错        guess = int(input("请输入你猜的数:"))        count += 1        if guess < secret:            print("太小了")        elif guess > secret:            print("太大了")        else:            print("猜对了!")            print("你一共猜了", count, "次")            break    again = input("再来一局吗?输入 y 继续,其他键退出:")    if again != "y":        print("拜拜,下次再玩!")        break
你可能会笑:
这不就是课本例子吗?
对,
课本例子的价值不在“新”,
而在“稳”。
孩子的第一口饭,
别急着上米其林。
第一版运行时,他也试过乱按键盘,
屏幕刷出一串英文报错——
我没趁机开讲座,
只说一句:
“没事,输入得像个数字,程序才接得住。”
(至于怎么把报错看明白、怎么用AI问得更准,我们手记后面会专门写。)

四、他为什么会「连玩八局」

说实话,
我原本预期是三局。
玩到第五局的时候,
我已经在观察他的状态了。
后来我想明白,
他不是沉迷“猜数字”,
他沉迷的是这件事:
每一次输入,
屏幕都会立刻回应他;
每一次回应,
都证明他的指令生效。
这就是编程启蒙里特别关键的一种感觉:
掌控感。
很多孩子在学习里缺的不是聪明,
是缺一段连续的正反馈。
那天下午,
我没有趁机灌输“循环是什么”“条件判断是什么”,
我只在关键点停一下:
当他卡住在“为什么要while”,
我只说:
“你希望猜错之后还能继续猜吗?
那就需要一个‘一直做’的结构。”
把术语留到他用得上的一刻,
他才会觉得术语不是考试,
是工具。

五、刘工的三个「家长别踩坑」(比讲语法更重要)

第一,别在第一作品里追求完美。
能跑、能玩、能重复玩,
就比“写得很规范但跑不起来”强一百倍。
第二,别把孩子当成你的下属。
你可以提需求,
但不要每一行都像在做code review。
第一作品更需要“保护兴趣”,
不是“纠正姿势”。
第三,别用结果羞辱过程。
猜了很多次才中,
反而更好——
你可以顺势夸他:
“你愿意试这么多次,这就是工程师品质。”

六、写在最后:下一篇我们会把它「升级」

猜数字最妙的地方,
是它永远能长第二版:
加次数限制、加难度选择、加计分、加排行榜……
每一步都很小,
但每一步都在训练孩子:
把需求说清楚,
把功能拆出来。
下一篇我会写:
怎么从这一版猜数字出发,
只用三句话,
带他改出“第二版”(把结构收干净、加限制、加小功能)。
(手记编号:E6,老读者可在专辑里顺着看。)
如果你家也做了猜数字,
留言区告诉我:
孩子最容易卡在哪一步——
是输入,是循环,还是“再来一局”?
若你身边也有家长纠结「第一节能不能做出点东西」,
欢迎把这篇转给ta:
孩子需要的往往不是更难的题,
而是一次“真的能玩起来”的体验。

最新文章

随机文章