2026Python公选课第一次实验-猜数字程序
20242218 2025-2026-2 《Python程序设计》实验1报告
课程:《Python程序设计》
班级: 2422
姓名: 段锦坤
学号:20242218
实验教师:王志强
实验日期:2026年3月23日
必修/选修: 公选课
1.实验内容
-
熟悉Python开发环境;
介绍Python开发环境的各项功能。 -
练习Python运行、调试技能;
编写书中的程序,并进行调试分析,要有过程(运行需要截图、调试需要截图)。 -
编写程序,练习变量和类型、字符串、对象、缩进和注释等;
编写一个猜数字的游戏。 -
利用LLM生成猜数字的游戏
运行并给出相应的截图。
对比你写的Python程序,分析LLM生成代码的优点,至少写3个。 -
掌握git技能
需要把编写的代码托管到Gitee上,给出托管过程和结果,并在此放上链接
2. 实验过程及结果
实验过程分为以下五个步骤
-
步骤1
在课上,我熟悉了解了Python的开发环境,利用Pycharm软件编写了猜数字游戏程序,并成功运行。 -
步骤2
我学习了Python运行和调试的基本技能。首先是运行程序。程序运行截图如下:
![image]()
调试截图如下:
![image]()
从图中可以看出,调试器给出了变量的值。guess=0和round=0由赋值得到,而num=60为随机得到。
-
步骤3
在课堂上,我编写了两个版本的“猜数字”游戏。第一个版本由程序随机生成一个1~100范围的整数,由用户提出猜测值,程序返回比较结果。第二个版本由用户在心里提出一个四位以内正整数,由程序提出猜测值,用户给出反馈。经过调试和测试,两个程序的运行结果均符合预期。
版本一代码:
import random
num = random.randint(1, 100)
guess = 0
round = 0
print("欢迎来到猜数字游戏!请输入你的猜测:")
while True:
try:
guess = int(input())
if (guess < num):
print("你猜的数字小了!")
elif (guess > num):
print("你猜的数字大了!")
else:
print("恭喜你猜对了!你花了" + str(round) + "轮。")
break
round += 1
except ValueError:
print("输入错误,请输入数字:")
版本二代码:
import random
print("-欢迎来到猜数字游戏,请在心里选择一个4位以内正整数\n-我会猜测你心里的数字,请告诉我大了、小了或是相等。\n-请记好你心里的数字,开始吧!")
input()
total = 0
round = 1
choose = 0
number = 5000
r = 9999
l = 0
while True:
print("#第" + str(round) + "轮:你心里的数字是 " + str(number))
print("大了:1; 小了:2; 相等:0")
while True:
try:
choose = int(input())
if choose in [0, 1, 2]:
break
else:
print("-输入错误,请输入1(大了)、2(小了)或0(相等):")
except ValueError:
print("-输入错误,请输入数字:")
# 二分法猜数字(要求整数)
if choose == 1:
r = number - 1
number = int((r + l) / 2)
elif choose == 2:
l = number + 1
number = int((r + l) / 2)
else:
print("-游戏结束!")
print("#哈哈!我通过" + str(round) + "轮猜中了你心里的数字!")
break
round += 1
total += 1
- 步骤4
接下来,我利用豆包模型生成的猜数字(版本一)程序。代码如下:
import random
# 随机生成1-100之间的目标数字
target_number = random.randint(1, 100)
user_guess = 0 # 存储用户的猜测值
guess_rounds = 0 # 记录猜测轮数
# 游戏欢迎语
print("欢迎来到猜数字游戏!请输入你的猜测:")
# 核心猜数字循环
while True:
try:
# 获取并转换用户输入
user_guess = int(input())
# 判断猜测结果
if user_guess < target_number:
print("你猜的数字小了!")
elif user_guess > target_number:
print("你猜的数字大了!")
else:
# 猜对了,结束游戏并显示轮数
print(f"恭喜你猜对了!你花了{guess_rounds}轮。")
break
# 每轮猜测后(除了猜对的情况)轮数加1
guess_rounds += 1
# 处理非数字输入的异常
except ValueError:
print("输入错误,请输入数字:")
运行结果如下:

相较我自己的程序,人工智能生成的程序具有以下三个优点:
-变量名语义化:num→target_number、guess→user_guess、round→guess_rounds(避免占用 Python 内置关键字round)
-用f-string替代字符串拼接,更简洁易读
-增加注释,方便理解代码结构
- 步骤5
最后,将完成的项目上传到gitee仓库。首先是登录仓库。我选择的方式是令牌登录,在gitee网站上生成私人令牌后,在Pycharm的gitee插件中粘贴,即可登录。
登录gitee账号后,在“Commit”栏中,选中发生了修改的文档,点击“Commit and Push”提交并推送到线上仓库。(https://gitee.com/silylorica/Python_Public_Lesson)
以下是上传结果截图:
![image]()
3. 实验过程中遇到的问题和解决过程
- 问题1:输出文本含数字时,语句
print("#第" + round + "轮:你心里的数字是 " + number)产生报错。 - 问题1解决方案:整数型变量不可直接与字符串拼接输出,应该用
str()函数转为字符串再输出。修改后如下:
print("#第" + str(round) + "轮:你心里的数字是 " + str(number))
其他(感悟、思考等)
通过本次 Python 实验,我不仅夯实了变量类型、循环结构、异常处理等基础语法,更在编写和对比 “猜数字游戏” 代码的过程中,对编程规范、可读性及 AI 辅助开发的价值有了新认知。
起初写代码时,我只关注 “功能能实现”,变量命名随意用num、round等简单字符,甚至误用 Python 内置关键字,也缺少注释。但对比 LLM 生成的代码后发现,好代码是写给 “人” 看的 ——target_number、guess_rounds这类语义化命名,加上清晰的注释,能让逻辑一目了然,这才是提升代码可维护性的关键。
同时我也明白,AI 是优质的学习辅助,但不能替代主动思考。AI 能精准用到 f-string、优化异常处理等最佳实践,这些细节是我初学易忽略的,而我需要弄懂这些优化背后的逻辑,把 AI 的优势转化为自己的能力,而非单纯复制。
从 “实现功能” 到 “优化体验” 的转变也让我收获良多:加入输入验证能提升程序健壮性,这让我意识到编程既要 “能用”,更要 “好用”。未来我会夯实基础,关注代码规范和用户体验,合理利用 AI 工具,在实践中提升编程思维。




浙公网安备 33010602011771号