当前位置:首页>python>用10行Python,做一个孩子愿意玩5分钟的猜数字游戏

用10行Python,做一个孩子愿意玩5分钟的猜数字游戏

  • 2026-09-23 09:05:00
用10行Python,做一个孩子愿意玩5分钟的猜数字游戏

【编程日报 004】


上周女儿学Python,教材第一课是print("Hello World")。
她问我:"这和我用Scratch说'你好'有什么区别?"
我说:"区别是,现在你可以让电脑和你玩了。"
今天用10行代码,做一个能玩5分钟的游戏。复制就能运行。

最终效果

我想了一个1-100的数字,你猜是多少?你的猜测:50太大了!再试一次。你的猜测:25太小了!再试一次。你的猜测:37恭喜你!用了3次猜对了!

分步代码(每步可复制测试)

第1-2行:让电脑"想"一个数字

import random           # 引入随机数工具箱number = random.randint(1, 100)   # 电脑随机想1-100之间的数print("我想了一个1-100的数字,你猜是多少?")
测试:运行两次,确认每次数字不同。
问孩子:"如果改成randint(1, 10),游戏会变简单还是更难?"

第3-4行:获取玩家的猜测

guess = input("你的猜测:")        # 等待玩家输入guess = int(guess)                 # 把文字转成数字
关键概念:input()得到的是"文字"(字符串),必须用int()转成"数字"才能比较。
常见bug:如果玩家输入"abc",程序会崩溃。暂时不管,第6篇讲异常处理。
问孩子:"如果去掉int(),直接比较guess > number,会发生什么?试试?"

第5-8行:判断并给出反馈

if guess > number:    print("太大了!再试一次。")elif guess < number:    print("太小了!再试一次。")else:    print("恭喜你!猜对了!")
关键概念:if-elif-else是编程的"分支结构",让程序能"做决定"。
问孩子:"如果猜对了,程序会执行哪几行?猜大了呢?"

第9-10行:循环直到猜对(进阶)

while guess != number:      # 当猜测不等于答案时,一直循环    guess = int(input("你的猜测:"))    # 这里插入上面的if-elif-else判断
注意:这是简化版,完整代码见文末。
关键概念:while循环让游戏能"玩多次",直到条件满足。
问孩子:"如果去掉while,游戏能玩几次?"

完整代码(可直接复制运行)

import randomnumber = random.randint(1, 100)print("我想了一个1-100的数字,你猜是多少?")count = 0  # 计数器while True:    guess = int(input("你的猜测:"))    count = count + 1    if guess > number:        print("太大了!")    elif guess < number:        print("太小了!")    else:        print(f"恭喜你!用了{count}次猜对了!")        break

3个扩展挑战(做完基础版再试)

挑战
难度
提示
限制次数
⭐
只能猜7次,用完显示"游戏结束,答案是XX"
范围提示
⭐⭐
每次猜完,显示"现在的范围是XX-XX"
难度选择
⭐⭐⭐
开始问"选难度:1简单(1-50) 2中等(1-100) 3困难(1-200)"

从Scratch到Python:孩子需要适应什么?

Scratch
Python
孩子常问的
积木拖放
打字输入
"打错字怎么办?" → 看报错,改,再运行
可视化舞台
文字黑窗口
"没有小猫了?" → 用print()画"文字画面"
事件点击启动
python 文件名.py
"怎么开始?" → 学会在终端/IDE里运行
颜色区分积木
缩进和符号
"什么时候用:?" → 记住if/while/for后面有

今晚就能试

"人机对战"之夜(30分钟):

1.你写,孩子猜(15分钟)

  • 复制上面的完整代码,保存为guess.py

  • 你运行,孩子猜,记录用了几次

2.孩子改,你猜(15分钟)

  • 让孩子改一个数字:范围1-1000,或限制只能猜5次

  • 孩子改代码,你当玩家测试

关键观察:孩子改的时候,是"试-报错-改-再试",还是"想清楚了再改"?前者是正常学习过程,别急着纠正。

难度标签

入门—— 适合8岁+,有Scratch基础,第一次接触Python

家长工具箱

场景
你的角色
一句话支持
代码运行报错
指到具体行号
"报错说第5行,我们看看第5行写了什么?"
孩子想放弃
降低难度
"我们先只做前4行,能弹出输入框就算成功"
孩子想加功能
鼓励先完成基础
"先让游戏能玩,再让它更好玩"
你也不会Python
共同学习
"我也不会,我们一起查input是做什么的?"

下期预告

005|不用电脑,今晚玩"编程桌游"(培养算法思维)

附录:常见报错速查

报错信息
原因
修复
SyntaxError
符号错误(括号、引号不匹配)
检查每行括号是否成对
NameError
变量名打错
检查大小写,number≠Number
ValueError
int()转换失败(输入了abc)
暂时重试,第6篇讲异常处理
IndentationError
缩进不对
Python靠缩进区分代码块,对齐即可

最新文章

随机文章