当前位置:首页>python>Python趣味项目:做一个猜数字游戏

Python趣味项目:做一个猜数字游戏

  • 2026-09-11 00:34:50
Python趣味项目:做一个猜数字游戏

很多孩子刚开始学Python的时候会问我:"老师,Python能做什么好玩的?"

我一般会带他们做的第一个项目就是——猜数字游戏。

别看它简单,这个小游戏里藏着Python入门最核心的几个知识点:变量、输入输出、条件判断、循环。孩子做完之后,不仅有成就感,还能把这些概念真正理解透。

今天就把这个教程分享出来,家长可以带着孩子在家试试。

游戏规则

先说我们要做的东西:

🎯 电脑随机想一个1到100之间的数字

🎯 玩家来猜,每次猜完电脑告诉你"大了"还是"小了"

🎯 直到猜对为止,最后告诉你一共猜了几次

是不是很熟悉?小时候我们在纸上玩过的游戏,现在让孩子用代码做出来。

准备工作

你需要在电脑上安装Python。如果还没装,去 python.org 下载最新版就行。安装的时候记得勾选"Add Python to PATH"。

装好之后,打开一个文本编辑器(推荐用IDLE,Python自带的),新建一个文件,命名为 guess_number.py。

第一步:让电脑"想"一个数字

我们需要用到Python的 random 模块,让电脑随机生成一个数字:

import random

secret = random.randint(1, 100)
print("我已经想好了一个1到100之间的数字,来猜猜看!")

这里有两个知识点:

  • 📦 import random —— 导入模块,就像打开一个工具箱
  • 🎲 random.randint(1, 100) —— 从1到100随机选一个整数

运行一下,屏幕上会显示那句提示语。当然,现在还不能猜,因为我们还没写猜的逻辑。

第二步:让玩家输入猜的数字

guess = input("请输入你猜的数字:")
guess = int(guess)

这里要注意:input() 接收的是文字(字符串),我们需要用 int() 把它转成数字,不然没法比大小。

这是初学者最容易踩的坑之一。我课上经常有孩子问:"老师,为什么我输入50,它说比'42'大呀?" 因为字符串比较和数字比较是不一样的!

第三步:判断猜的对不对

if guess == secret:
    print("🎉 恭喜你,猜对了!")
elif guess > secret:
    print("大了,再猜猜~")
else:
    print("小了,再猜猜~")

这就是Python里的条件判断:if...elif...else。翻译成人话就是:

如果猜对了 → 恭喜

否则如果猜大了 → 提示"大了"

否则 → 提示"小了"

第四步:加上循环,可以反复猜

现在的问题是:只能猜一次就结束了。我们需要让它"循环"起来,直到猜对为止。

这就要用到 while 循环了。来看完整代码:

import random

secret = random.randint(1, 100)
count = 0

print("🎮 猜数字游戏")
print("我想了一个1到100之间的数字,你来猜!")
print("-" * 30)

while True:
    guess = input("请输入你猜的数字:")
    guess = int(guess)
    count = count + 1

    if guess == secret:
        print(f"🎉 恭喜你,猜对了!答案就是{secret}")
        print(f"你一共猜了{count}次")
        break
    elif guess > secret:
        print("📈 大了,再试试~")
    else:
        print("📉 小了,再试试~")

while True 表示"一直循环",break 表示"跳出循环"。所以这段代码的意思是:一直猜,直到猜对了就停下来。

count 是一个计数器,每猜一次就加1,最后告诉玩家一共猜了几次。

💡 运行一下试试

保存文件,然后在命令行输入 python guess_number.py 运行。和孩子一起玩几把,看看谁猜的次数最少!

进阶挑战:让游戏更好玩

基础版做完了,孩子如果意犹未尽,可以试试这些升级任务:

挑战1:限制猜的次数

比如最多只能猜7次(数学上,用二分法7次肯定能猜到1-100的数):

max_tries = 7

while count < max_tries:
    # ... 猜的逻辑 ...

if count == max_tries:
    print(f"😢 很遗憾,次数用完了。答案是{secret}")

挑战2:加入难度选择

print("请选择难度:")
print("1. 简单(1-50)")
print("2. 普通(1-100)")
print("3. 困难(1-500)")

level = input("输入1/2/3:")

if level == "1":
    secret = random.randint(1, 50)
elif level == "2":
    secret = random.randint(1, 100)
else:
    secret = random.randint(1, 500)

挑战3:防止输入错误

如果玩家输入的不是数字(比如输了个"abc"),程序会崩溃。我们可以加一个保护:

try:
    guess = int(input("请输入你猜的数字:"))
except ValueError:
    print("⚠️ 请输入一个数字哦!")
    continue

这就是异常处理,虽然是进阶内容,但放在这个场景里孩子很容易理解:程序遇到意外情况时,不要崩溃,而是友好地提醒用户。

这个项目里学到了什么

别小看这个小游戏,我们来盘点一下里面的知识点:

知识点在游戏中的用途
import 模块导入random生成随机数
变量存储答案、猜的数字、次数
input() 输入获取玩家猜的数字
print() 输出显示提示信息
类型转换 int()把文字转成数字
条件判断 if/elif/else判断猜大了、小了、对了
循环 while让游戏可以反复猜
break猜对后退出循环
f-string 格式化在文字中嵌入变量

一个小游戏,覆盖了Python入门60%的核心知识点。这就是为什么我爱用项目来教编程——知识不是灌进去的,是用着用着就会了的。

给家长的话

这个项目特别适合刚学Python的孩子(一般10岁以上),大概1-2个小时就能完成。

过程中你可能会遇到一些问题,比如缩进错误(Python对缩进非常敏感)、忘记类型转换等。这些"Bug"不是坏事,恰恰是最好的学习机会。

陪孩子做的时候,你不需要懂Python,只需要做好两件事:

  • 👂 当孩子卡住的时候,耐心听他描述问题
  • 👏 当孩子搞定的时候,真心地给他鼓掌

编程最好的学习方式,就是做一个真正有趣的东西。猜数字游戏只是开始,后面还有更多好玩的项目等着孩子去探索。

如果你家孩子做出了升级版,欢迎在评论区分享代码截图!我会认真看每一个,说不定下期就展示你家孩子的作品 😊

· · ·

码小芽 | 让每个孩子都能快乐编程 🌱

少儿编程老师 | 3年一线教学经验 | 用真话聊编程教育

最新文章

随机文章