欢迎光临
我们一直在努力

少儿 Python 入门第一课:猜数字游戏(含完整代码与讲解)

一、为什么第一课选猜数字
选入门项目有三个标准:反馈快、规则简单、可拓展。

猜数字三条都满足:

输入一个数,立刻有大/小/对了三种反馈
规则一句话说清,不需要额外背景
可以加次数限制、难度选择、重复游戏,拓展空间大
对比另外两个常见选题:

选题问题
计算器交互弱,孩子感受不到乐趣
画图形视觉反馈好,但不涉及判断逻辑
猜数字判断 + 循环 + 输入,覆盖面最全
二、最小版本:先跑起来
第一版只做核心功能,代码控制在 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() 得到的是字符串
  • 这是最容易踩的坑。input 返回的永远是字符串,必须转成整数才能比较大小。

    python
    guess = int(input(“你猜是多少?”)) # int() 不能漏
    可以让孩子故意删掉 int(),看看会报什么错。TypeError 的报错信息虽然长,但最后一行会提示类型问题,这是很好的读报错练习。

  • elif 与两个 if 的区别
  • 很多孩子会写成:

    python
    复制
    if guess < secret:
    print(“小了”)
    if guess > secret: # 这里应该是 elif
    print(“大了”)
    else:
    print(“猜对了!”)
    这段代码有个隐蔽的 bug:猜小的时候,第二个 if 不满足,会走到 else,同时输出"小了"和"猜对了"。

    课堂上可以让孩子输入一个偏小的数,自己发现这个问题。 找到原因之后再引出 elif,理解会牢固得多。

  • break 的作用
  • 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 那个例子)
    把报错当成教学素材,而不是需要避免的麻烦
    代码能跑通不是目标,能自己找出为什么跑不通才是。

    赞(0)
    未经允许不得转载:171主机测评 » 少儿 Python 入门第一课:猜数字游戏(含完整代码与讲解)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址