2026Python公选课第一次实验-猜数字程序

20242218 2025-2026-2 《Python程序设计》实验1报告

课程:《Python程序设计》
班级: 2422
姓名: 段锦坤
学号:20242218
实验教师:王志强
实验日期:2026年3月23日
必修/选修: 公选课

1.实验内容

  1. 熟悉Python开发环境;
    介绍Python开发环境的各项功能。

  2. 练习Python运行、调试技能;
    编写书中的程序,并进行调试分析,要有过程(运行需要截图、调试需要截图)。

  3. 编写程序,练习变量和类型、字符串、对象、缩进和注释等;
    编写一个猜数字的游戏。

  4. 利用LLM生成猜数字的游戏
    运行并给出相应的截图。
    对比你写的Python程序,分析LLM生成代码的优点,至少写3个。

  5. 掌握git技能
    需要把编写的代码托管到Gitee上,给出托管过程和结果,并在此放上链接

2. 实验过程及结果

实验过程分为以下五个步骤

  1. 步骤1
    在课上,我熟悉了解了Python的开发环境,利用Pycharm软件编写了猜数字游戏程序,并成功运行。

  2. 步骤2
    我学习了Python运行和调试的基本技能。首先是运行程序。程序运行截图如下:
    image

    调试截图如下:
    image

    从图中可以看出,调试器给出了变量的值。guess=0round=0由赋值得到,而num=60为随机得到。

  3. 步骤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       
  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("输入错误,请输入数字:")

运行结果如下:
image
相较我自己的程序,人工智能生成的程序具有以下三个优点:
-变量名语义化:num→target_number、guess→user_guess、round→guess_rounds(避免占用 Python 内置关键字round)
-用f-string替代字符串拼接,更简洁易读
-增加注释,方便理解代码结构

  1. 步骤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 工具,在实践中提升编程思维。

参考资料

posted @ 2026-03-23 20:47  Silylorica  阅读(0)  评论(0)    收藏  举报