一、为什么第一课选猜数字
选入门项目有三个标准:反馈快、规则简单、可拓展。
猜数字三条都满足:
输入一个数,立刻有大/小/对了三种反馈
规则一句话说清,不需要额外背景
可以加次数限制、难度选择、重复游戏,拓展空间大
对比另外两个常见选题:
选题问题
计算器交互弱,孩子感受不到乐趣
画图形视觉反馈好,但不涉及判断逻辑
猜数字判断 + 循环 + 输入,覆盖面最全
二、最小版本:先跑起来
第一版只做核心功能,代码控制在 15 行以内:
python
import random
secret = random.randint(1, 100)
print(“我想了一个 1 到 100 之间的数,你来猜。”)
while True:
guess = int(input(“你猜是多少?”))
if guess < secret:
print(“小了”)
elif guess > secret:
print(“大了”)
else:
print(“猜对了!”)
break
讲解顺序建议(重要):
不要从上往下逐行讲。先讲 while True 这个"一直问"的结构,再讲里面的三种判断。
原因:孩子对"重复问"有直观感受,对"无限循环"没有。先建立整体感觉,再拆细节,接受度更高。
三、三个关键语法点
这是最容易踩的坑。input 返回的永远是字符串,必须转成整数才能比较大小。
python
guess = int(input(“你猜是多少?”)) # int() 不能漏
可以让孩子故意删掉 int(),看看会报什么错。TypeError 的报错信息虽然长,但最后一行会提示类型问题,这是很好的读报错练习。
很多孩子会写成:
python
复制
if guess < secret:
print(“小了”)
if guess > secret: # 这里应该是 elif
print(“大了”)
else:
print(“猜对了!”)
这段代码有个隐蔽的 bug:猜小的时候,第二个 if 不满足,会走到 else,同时输出"小了"和"猜对了"。
课堂上可以让孩子输入一个偏小的数,自己发现这个问题。 找到原因之后再引出 elif,理解会牢固得多。
while True 是无限循环,必须靠 break 跳出。可以问一句:猜对了之后,程序该做什么?
孩子通常会说"结束"。这时候再告诉他 break 就是"结束"对应的代码。
四、第二版:加上次数统计
功能加一层,代码只多两行:
python
import random
secret = random.randint(1, 100)
count = 0
print(“我想了一个 1 到 100 之间的数。”)
while True:
guess = int(input(“你猜是多少?”))
count = count + 1
if guess < secret:
print(“小了”)
elif guess > secret:
print(“大了”)
else:
print(“猜对了!你一共猜了”, count, “次”)
break
这里引入变量累加的概念,count = count + 1 对初学者有点反直觉(等号两边都有 count),需要用"记数本每猜一次就加一笔"来类比。
五、第三版:处理非法输入
孩子测试时一定会输入字母或者直接回车,程序会崩溃。这正好是讲异常处理的时机:
python
教学要点:
try 里放"可能出错的代码"
except 里放"出错后怎么办"
continue 表示"这次不算,重新来"
不建议在第一课就讲 try/except 的完整机制,讲清这三个作用即可。机制放到后面系统学异常时再展开。
六、第四版:加难度选择(综合练习)
作为课后作业或者第二课时,可以让孩子自己完成:
python
七、课堂提问设计
代码之外,提问的设计更影响效果。建议准备这几个问题:
讲之前问:如果要让电脑陪我们玩猜数字,它需要记住什么? → 引出一个要"记住答案",自然地引出变量。
写到一半问:现在程序会一直问下去,什么时候该停? → 引出 break。
写完以后问:如果输入的是"abc",会发生什么? → 引出异常处理。
拓展时问:如果我想限制最多猜 7 次,该改哪里? → 引出循环条件。
这几个问题的共同点是让学生先想,再讲代码。 直接给答案的讲法,孩子记住的是步骤;先提问的讲法,孩子记住的是思路。
八、常见报错对照表
可以打印出来贴在教室里:
报错原因解决
SyntaxError: invalid syntax括号、冒号缺失或用了中文标点检查 : 和 ()
IndentationError缩进不一致统一用 4 个空格
TypeError: ‘<’ not supported忘了 int()加类型转换
ValueError输入了非数字用 try/except 处理
NameError变量名拼错检查拼写与大小写
其中中文标点是初学者最高频的错误,建议第一课就强调:Python 里所有符号都用英文半角。
九、小结
猜数字这个例子,覆盖了入门阶段最核心的五个概念:变量、输入、循环、条件判断、异常处理(可选)。
教学上建议把握三点:
先讲整体结构,再拆语法细节
故意留一个 bug 让孩子自己发现(比如 if 和 elif 那个例子)
把报错当成教学素材,而不是需要避免的麻烦
代码能跑通不是目标,能自己找出为什么跑不通才是。



