猜数字游戏(Python)
你将构建什么
一个猜数字游戏:程序用 random.randint 生成 1 到 100 之间的目标数字,玩家反复输入猜测,程序提示“太大”或“太小”,猜中后显示总次数。
学习目标
- 用 random.randint 生成随机目标数字
- 用 input 读取玩家输入并转换为整数
- 用 while 循环让玩家反复猜测
- 用 if/elif/else 比较并给出反馈
前置要求
- 了解 Python 变量和数据类型
- 了解 if/else 条件判断
- 了解 while 循环
步骤
- 1
导入 random 并生成目标数字
用 import random 导入随机模块,random.randint(1, 100) 生成 1 到 100 之间的随机整数。打印欢迎信息。
代码import random target = random.randint(1, 100) print("我已经想好了一个 1 到 100 之间的数字,开始猜吧!")预期结果
程序运行后生成一个随机数,打印欢迎信息。
提示
random.randint(a, b) 包含两端,所以 randint(1, 100) 可能返回 1 或 100。
- 2
读取玩家输入并初始化计数器
用 input() 读取玩家输入,int() 转换为整数。声明 attempts = 1 记录猜测次数。
代码guess = int(input("请输入你的猜测:")) attempts = 1预期结果
程序等待玩家输入,输入后 guess 变为对应整数。
提示
input() 返回字符串,必须用 int() 转换才能比较大小。
- 3
用循环给出反馈直到猜中
用 while guess != target 循环:比较 guess 和 target,提示太大或太小,重新读取输入,次数加一。猜中后循环结束。
代码while guess != target: if guess < target: print("太小了,再大一点!") else: print("太大了,再小一点!") guess = int(input("再猜一次:")) attempts += 1 print(f"恭喜你猜中了!你一共用了 {attempts} 次。")预期结果
玩家每次猜测后得到提示,猜中后显示恭喜信息和总次数。
提示
f-string 用花括号插入变量,比字符串拼接更清晰。
- 4
添加输入异常处理
用 try/except 包裹 int(input()),如果玩家输入非数字就提示重新输入,而不是程序崩溃。
代码while True: try: guess = int(input("请输入你的猜测:")) break except ValueError: print("请输入一个有效的数字!")预期结果
输入非数字时提示重新输入,输入数字后继续游戏。
提示
try/except 是 Python 的错误处理机制,ValueError 是转换失败时抛出的异常。
自己动手试试
import random
target = random.randint(1, 100)
print("我已经想好了一个 1 到 100 之间的数字,开始猜吧!")
# TODO: 读取猜测、循环提示、计数import random
target = random.randint(1, 100)
print("我已经想好了一个 1 到 100 之间的数字,开始猜吧!")
while True:
try:
guess = int(input("请输入你的猜测:"))
break
except ValueError:
print("请输入一个有效的数字!")
attempts = 1
while guess != target:
if guess < target:
print("太小了,再大一点!")
else:
print("太大了,再小一点!")
while True:
try:
guess = int(input("再猜一次:"))
break
except ValueError:
print("请输入一个有效的数字!")
attempts += 1
print(f"恭喜你猜中了!你一共用了 {attempts} 次。")你学到了什么
你用 Python 实现了一个完整的交互式游戏,综合运用了模块导入、输入输出、条件判断、循环和异常处理——这些都是 Python 编程的基础要素。
相关资源
相关术语
新手友好的术语表用大白话解释编程术语——变量、函数、DOM、Promise 等等。
相关错误
用大白话解释常见错误——什么意思、为什么发生、如何修复。