20254102 2025-2026-2《Python程序设计》实验4报告
课程:《Python程序设计》
班级: 2541
姓名: 张嘉锋
学号:20254102
实验教师:王志强
实验日期:2026年6月11日
必修/选修: 专选课
一、实验内容
Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
例如:编写从社交网络爬取数据,实现可视化舆情监控或者情感分析。
例如:利用公开数据集,开展图像分类、恶意软件检测等
例如:利用Python库,基于OCR技术实现自动化提取图片中数据,并填入excel中。
例如:爬取天气数据,实现自动化微信提醒
例如:利用爬虫,实现自动化下载网站视频、文件等。
例如:编写小游戏:坦克大战、贪吃蛇、扫雷等等
注:在Windows/Linux系统上使用VIM、PDB、IDLE、Pycharm等工具编程实现。
要求:
(1)程序能运行,功能丰富(至少5个功能)。(需求提交源代码,并建议录制程序运行的视频)15分
(2)综合实践报告,要体现实验分析、设计、实现过程、结果等信息,格式规范,逻辑清晰,结构合理。20分。
(3)在实践报告中,需要对全课进行总结,并写课程感想体会、意见和建议等。10分
二、实验分析
视频链接:https://www.bilibili.com/video/av116735231396411/?vd_source=2ed8c61710f6c9c3e387b7908706b55b
(一)问题分析
本次实验要求能力较为综合,是对课堂所学的一次全方位总结与实践。为了呈现相对较好的效果,我决定采用制作小游戏的方式完成本次作业。
(二)实验目的
(1)掌握Python语言的运用,将课堂上的理论知识运用到实际。
(2)完成“设计一款吃豆人小游戏并实现游戏的成功运行”的期末作业。
(3)设计并实现自由选择关卡难度功能,实现“自由选择难度、豆子数量与难度同步提升”的配合。
(4)完成游戏核心的交互逻辑的开发,确保游戏流程流畅、规则清晰,不出现明显的运行逻辑问题。
(5)分析开发过程中的问题,怎样解决,提升程序调试、逻辑优化的能力。
(三)实验环境
软件环境:编程工具PyCharm,Pygame库。
三,实验内容
(1)核心功能
*难度自选:开局菜单上下键切换简单 / 中等 / 困难,回车进入对应迷宫,幽灵速度、地图复杂度逐级提升
*基础操控与角色:方向键控制黄色吃豆人,四只彩色幽灵带自主追击 AI,恐惧状态会逃跑
*生命失败机制:初始 3 条数字生命,常态碰幽灵扣血,生命归零判定失败
*能量恐惧机制:吃蓝色大豆触发幽灵可捕捉、不扣血的限时状态
*界面 UI:底部分数、生命、返回提示三分整齐排版,左上角显示当前难度
*全局切换重置:R 键随时退回难度选择菜单;胜利空格切更高难度;ESC 关闭窗口
(2)实验设计模块
根据游戏功能设计相应模块:
*初始化配置模块:窗口、色彩、常量、多难度迷宫数据;
*实体类模块:吃豆人类、幽灵 AI 类,封装自身属性与行为;
*菜单交互模块:难度选择上下切换、回车确认;
*游戏循环调度模块:事件、位移、碰撞、绘制顺序调度;
*判定模块:得分、胜利、失败、生命扣除逻辑;
*UI 渲染模块:分数、生命、难度文字界面绘制;
*重置切换模块:R 回菜单、空格升难度、角色地图数据复位;
(3)实验内容
1.配置pygame环境

2.书写代码相应模块:
初始化与常量配置模块




实体类模块

幽灵类 Ghost AI 实体模块


难度菜单与关卡加载切换函数模块

主循环调度核心模块



UI 渲染模块

(4)实验结果
实验中的问题及解决:
(1)问题:不知道怎么安装pygame模块
解决方法:上b站搜索视频,看看其他人是怎么做的
(2)问题:在让豆包帮我生成代码时,豆包无法理解我的意思,下方UI显示分数会与生命重叠
解决方法:让豆包修改无果后,我把显示的分数改小了一些,这样也能做到不重叠了(虽然是邪修做法,但好歹结果对了)
(3)问题:一开始代码结束运行时,会出现小方块,影响美观
解决方法:我让豆包修改代码,让代码在结束时出现特定的字样,这样就把那个小方块去掉了
不足之处:UI设计不尽如人意,左上角难度与迷宫重叠,在询问豆包,并让它重新生成代码后,还是没能解决
课程知识总结
(1)Python的含义
Python是一种跨平台、面向对象的高级程序设计语言,具有简洁、易读、丰富的第三方库等特点。它可以运行在Windows、Linux等多种操作系统上,变量无需提前声明类型,由系统自动推导。此外,我们还了解了Python的发展背景、应用场景及开发环境的搭建。
2.基础语法
(2)编程语言与解释型语言
编程语言分类:编译型(如C++):运行快,开发慢。解释型(如Python):开发快,运行慢。
选择因素:编程范式、性能、社区支持。
(3)Python语法基础
注释:单行#,多行'''或"""。
代码缩进:缩进表示代码块,推荐4个空格。
编码规范:PEP 8。
标识符规则:字母/数字/下划线组成,不能数字开头,区分大小写。
变量:无需声明,直接赋值,动态类型。
基本数据类型:数字(int/float)、字符串、布尔(True/False)。
类型转换:int()、float()、str()、hex()、oct()。
运算符:算术、赋值、比较、逻辑、位运算符。
输入输出:input()、print()(可通过end=控制换行)。
(4)流程控制语句
选择结构:if、elif、else。
循环结构:while循环。for循环结合range(start, end, step)。
控制语句:break、continue。
条件表达式:a if condition else b(类似三元运算符)。
空语句:pass。
(5)其他技术
socket:Socket=IP+端口
Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。
感想体会:
作为一个文科生,我一开始对Python课程的态度应该是避而远之的,我觉得编程这种偏向理科的课程,对我来说,肯定是不好做的,但是通过这一学期的学习,我对Python的认知有了一个新的理解,在课程前期学习中,我只能跟随课堂案例抄写简单代码,对程序运行逻辑理解较为浅显,对于复杂逻辑结构存在理解困难。到课程结束为止,可能对一些基础知识,掌握的还是不太熟练,自己编写代码是还是会犯小错误,但是还是非常感谢本学期的python课程让我遇见了神仙王志强老师,上课非常有意思,很幽默,特别喜欢牢大,我的知识掌握的不是很牢固,但是因为王老师也对Python编程之类的抵触情绪逐渐消减掉了,也能渐渐找到乐趣了,尽管有很多时候自己会遇到问题,明明代码一样却总报错,无法理解为什么这么敲代码,对于AI生成的代码,有时候也会让我火大,根本无法理解我要它生成的功能是什么,但是每当我完成一个实验,体感还是相对爽的,就像数学整懂了一道难题。
课程建议:
1.给学弟学妹们的课程中能增加一些小组合作的项目
剩下的就没有什么建议啦。
总而言之,还是相当感谢王老师一学期的带领,希望王老师工作顺利,万事如意啦!

浙公网安备 33010602011771号