用Python写一个猜数字小游戏,完整实操复盘
最近一直在学习Python基础语法,单纯看课本知识点总觉得理解不够透彻,想着找一个简单的小项目动手实操一下,于是选择了经典的猜数字小游戏。这个项目用到的都是入门核心内容:随机数生成、while循环、分支判断、键盘输入输出,代码简短但逻辑完整,写完之后对基础语句的运用熟练了不少,在这里记录一下完整的实现过程和踩过的小问题。
首先梳理游戏的整体逻辑:程序自动生成一个1~100之间的随机数字,玩家输入自己猜测的数字,程序对比两个数字给出提示。如果猜的数字偏大,就提示数字太大;偏小则提示数字太小;完全相等就提示猜对,结束游戏,同时统计玩家一共猜了多少次。
想要实现随机数字,需要导入Python自带的random模块,randint函数可以快速生成指定区间内的整数。完整基础代码如下:
导入随机数模块
import random
生成1-100的随机数字
answer = random.randint(1, 100)
count = 0 # 记录猜测次数
print("欢迎来到猜数字游戏!")
print("我已经想好一个1到100之间的数字,快来猜猜看吧!")
循环持续猜数字,直到猜对
while True:
# 获取用户输入并转为整数
guess = int(input("请输入你猜的数字:"))
count += 1
if guess > answer:
print("猜大啦,再试试更小的数字!")
elif guess < answer:
print("猜小啦,再试试更大的数字!")
else:
print(f"恭喜你猜对了!答案就是{answer}")
print(f"你一共猜测了{count}次")
break # 猜对跳出循环,游戏结束
写完基础代码运行测试时,我发现了一个很容易忽略的问题:如果玩家输入字母、符号这类非数字内容,程序会直接报错崩溃。为了让程序容错性更强,我加上异常处理try-except结构,优化后的完整代码:
import random
answer = random.randint(1, 100)
count = 0
print("欢迎来到猜数字游戏!")
print("我已经想好一个1到100之间的数字,快来猜猜看吧!")
while True:
try:
guess = int(input("请输入你猜的数字:"))
count += 1
if guess > 100 or guess < 1:
print("请输入1-100范围内的数字!")
continue
if guess > answer:
print("猜大啦,再试试更小的数字!")
elif guess < answer:
print("猜小啦,再试试更大的数字!")
else:
print(f"恭喜你猜对了!答案就是{answer}")
print(f"你一共猜测了{count}次")
break
except ValueError:
print("输入错误,请输入合法数字!")
优化之后程序完善了两处细节:一是判断输入数字是否在1到100区间,超出范围会提醒重新输入;二是捕获非数字输入的异常,不会直接闪退,体验好了很多。
实操过程中我也有不少感悟,以前单独学习while循环、if判断的时候,总觉得知识点割裂,放到小游戏里才明白各个语法该怎么搭配使用。while True无限循环搭配break退出,非常适合这种需要重复操作直到满足条件的场景。同时也意识到异常处理的重要性,真正能用的小程序不能只考虑正确输入,还要预判用户各种错误操作。
整个项目没有复杂的类、第三方库,纯基础语法就能完成,非常适合刚入门Python的人练习。后续还可以继续拓展功能,比如增加难度选择、限定最大猜测次数、多轮游戏计分等,用来锻炼自己的代码优化和拓展思维。这次写小游戏的实操练习,让我不再只会死记语法,能够独立梳理逻辑、编写完整小程序,收获还是很大的。

浙公网安备 33010602011771号