实验四 Python综合实践20254223崔之垚

20254223 2025——2026——2 《Python程序设计》实验四报告

课程:《Python程序设计》
班级:2542
姓名:崔之垚
学号:20254223
实验教师:王志强
实验日期:2026年5月19日
必修/选修:必修课

一、实验内容:

Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
例如:编写从社交网络爬取数据,实现可视化舆情监控或者情感分析。
例如:利用公开数据集,开展图像分类、恶意软件检测等
例如:利用Python库,基于OCR技术实现自动化提取图片中数据,并填入excel中。
例如:爬取天气数据,实现自动化微信提醒
例如:利用爬虫,实现自动化下载网站视频、文件等。
例如:编写小游戏:坦克大战、贪吃蛇、扫雷等等
注:在Windows/Linux系统上使用VIM、PDB、IDLE、Pycharm等工具编程实现。

要求:
(1)程序能运行,功能丰富(至少5个功能)。(需求提交源代码,并建议录制程序运行的视频)15分
(2)综合实践报告,要体现实验分析、设计、实现过程、结果等信息,格式规范,逻辑清晰,结构合理。20分。
(3)在实践报告中,需要对全课进行总结,并写课程感想体会、意见和建议等。10分

二、实验过程:

1.实验设计:
(1)搜集资料:利用AI大模型、浏览器等搜索工具收集坦克大战相关游戏的内容、游戏操作方式、游戏功能等基本信息,并体验操作现有的坦克大战类游戏,为程序编写作必要的准备。
1
2
3
4
5

(2)设计:本次使用Python结合Pygame库开发简易坦克大战小游戏,完成界面搭建、角色操控、对战交互等多项核心功能。程序采用面向对象思想设计,划分坦克、子弹、墙体、基地等独立类,分别实现移动、发射、碰撞判定等功能,代码结构清晰易维护。
游戏设置完整运行流程,包含初始开始菜单、游戏运行、暂停、胜利与失败五大界面,操作逻辑简洁易懂。玩家可通过方向键控制己方坦克移动,空格键发射子弹,同时系统自动生成敌方坦克并实现自主移动与射击。
项目实现子弹击毁敌方、墙体阻挡、基地防护、分数统计等实用功能,满足课程设计要求。编写过程中解决了库安装报错、字体加载异常、角色边界越界等问题,优化游戏运行流畅度。


2.实现过程:
(1)先自主进行程序的编写,查阅相关书籍,结合课程内容进行编写。编写完成后进行运行,发现代码漏洞较多,借助自己的编程技术无法修复,因此求助于同学及AI大模型进行修改。
(2)在自己编写的代码基础之上,通过将代码输入大模型,并输入修改代码、修复漏洞的指令,借助AI大模型填补代码漏洞,修复系统BUG,初步达成顺利运行代码的目的。
6
以上为初步代码生成游戏的进入界面
7
以上为初步代码生成游戏的操作界面
以下为初步代码游戏运行视频:
https://www.bilibili.com/video/BV1A2VN6sEhA?buvid=XUA122BA0F61DFC901753DEFFE323731C26AA&is_story_h5=false&mid=t3yOLkaOwhC70Frwk%2FYHhH8FTQ%2FSZMtL1rElX6M3iMo%3D&plat_id=114&share_from=ugc&share_medium=harmony&share_plat=harmony&share_session_id=65df9ad5-9cef-4a36-a64e-07ed0a9e1ac4&share_source=weixin&share_tag=s_i&timestamp=1779798754&unique_k=ekzRZhD&up_id=3632305727867513&vd_source=c9a306e237a9724ece1aea9beb05f112
分析:初步代码生成的游戏虽然可以运行,但仍然存在许多问题,例如:掩体可以被玩家操纵的坦克直接穿过或者击毁,没有起到掩体的作用;敌对坦克也可以穿墙而过,掩体作用不明显;玩家操纵的坦克移动方式僵硬,缺乏操纵感。
(3)为进一步完善游戏代码,决定将代码二次投喂给大模型,加入更加具体复杂的游戏功能要求,借助AI大模型的强大纠错及编写代码能力进一步完善游戏细节如掩体、操作、造型设计等。
8
以上为修改完善后游戏进入界面
9
以上为修改完善后游戏操作界面
10
以上为修改完善后游戏结束画面
以下为完善后代码生成游戏的运行视频:
https://www.bilibili.com/video/BV1A2VN6WExJ?buvid=XUA122BA0F61DFC901753DEFFE323731C26AA&is_story_h5=false&mid=t3yOLkaOwhC70Frwk%2FYHhH8FTQ%2FSZMtL1rElX6M3iMo%3D&plat_id=114&share_from=ugc&share_medium=harmony&share_plat=harmony&share_session_id=b9ab05c2-e2bc-4824-9503-57b5683b57b3&share_source=weixin&share_tag=s_i&timestamp=1779798779&unique_k=MpLJtpO&up_id=3632305727867513&vd_source=c9a306e237a9724ece1aea9beb05f112
分析:较前面生成游戏而言,该版本游戏解决了掩体形同虚设的问题,使得掩体可以抵挡子弹,并且不可被穿透;同时优化了玩家坦克的操作性,提升游戏体验。
(4)经过两次代码编写与完善,坦克大战游戏基本达到编写预期,各项功能如玩家坦克移动、开火、敌方坦克自动运行、基地生成、固定掩体生成、子弹击毁目标效果、开始及结算画面显示、分数积累与计算等功能均已实现。


3.实验总结:
(1)实验亮点:初次尝试进行独立的游戏代码编写作业对于我来说是一次不小的挑战,但经过长时间的摸索与虚心求教,我最终完成了基本代码编写的任务。
此次编写的代码为坦克大战小游戏代码,实现了坦克大战游戏的基本功能。最终版代码较最初版本的代码有较大的提升,完善了部分BUG,有效提升了游戏体验。
(2)实验不足:由于自身代码编写能力的欠缺,本次代码编写的过程中借助了大模型的力量,自主编写部分错误较多;同时即使借助大模型进行代码完善,编写出的游戏仍旧较为简陋,画风简洁刚硬、画面配色单调、操作机械单一、内容简单平淡,没有坦克大战游戏应有的刺激感与操作感。
(3)实验心得:此次实验是一次开放式的代码编写综合能力运用测验,编写可运行的成熟(半成熟)游戏代码要求综合运用前几节课上所学的代码语言,并且要求在熟练掌握各部分知识的同时掌握综合编写运用能力。由于是文科生,我之前对代码的了解不多,编写能力极其有限,因此在编写过程中不得不大量借助书本、同学以及大模型的帮助,但面对众多困难。我并没有放弃,而是坚持寻找解决的方法,不断查找资料、完善代码,最终比较完全的实现了游戏最初的设计目的。尽管经过大量修改完善的代码任然有不少有待完善修复的地方,但在代码编写过程中进行的资料查找、编写试炼等工作提升了我的编写能力,同时也锻炼了我对大模型、参考书的运用能力,并且锻炼了我坚持不懈、不轻言放弃的意志。
总体来说,此次实验对我的综合能力有很大的锻炼提升意义。

三、课程总结:

1.课程回顾:
本学期主要围绕以下Python基础内容展开:
(1). 环境搭建与基础运行
掌握 Python 解释器安装、IDLE/VS Code 等编辑器使用,学会新建、运行、保存代码文件。了解代码运行基本流程,区分交互式命令行与脚本文件运行方式,熟悉程序报错提示的基本含义。
(2). 基本语法与规范
牢记 Python 缩进规则(替代大括号,缩进错误会导致程序异常),掌握注释写法(单行#、多行三引号)。了解标识符命名规则、关键字,养成代码换行、空格等书写规范。
(3). 变量与数据类型
理解变量定义与赋值逻辑,掌握整数、浮点数、字符串、布尔值四大基础数据类型。学会不同类型间转换方法,理解变量存储数据的基本原理。
(4). 输入与输出
熟练使用print()实现内容输出,掌握格式化输出;运用input()获取键盘输入,默认接收字符串类型,结合类型转换实现数字输入,完成简单人机交互。
(5). 运算符
学习算术、赋值、比较、逻辑四大类运算符,掌握运算优先级。能结合运算符完成数值计算、条件判断,理解and、or、not逻辑运算规则。
(6). 条件判断语句
掌握if、if-else、if-elif-else分支结构,根据不同条件执行对应代码。学会嵌套条件语句,运用条件判断解决分支选择类问题。
(7). 循环语句
区分while循环与for循环的用法,掌握循环结构执行逻辑。学会break终止循环、continue跳过本次循环,能利用循环完成重复运算、遍历操作。
(8). 字符串操作
掌握字符串拼接、截取、索引、切片等基础操作,学习常用内置方法,如查找、替换、大小写转换、去除空格,处理文本类简单需求。
(9). 列表与元组
了解列表list和元组tuple的特性,列表可增删改查、元组不可修改。掌握元素增删、查找、排序、遍历等操作,学会用列表存储一组数据。
(10). 字典与集合
理解字典dict键值对存储形式,实现数据查找、增删改;掌握集合set去重、交集、并集等特性。学会根据数据特点选择合适容器。
(11). 函数基础
掌握函数定义def、调用方法,区分形参和实参。理解函数返回值、局部变量与全局变量,学会将重复代码封装为函数,简化程序结构。
(12). 简单异常处理
了解程序常见运行异常,使用try-except捕获错误,避免程序直接崩溃。掌握基础异常排查思路,学会阅读报错信息、修正代码问题。
(13).爬虫
网络爬虫也叫网页抓取、网络蜘蛛,是按照规则自动访问网页、提取数据的程序,Python 是实现爬虫最常用的语言。(重要提醒:爬虫必须遵守网站规则与网络法规,禁止恶意高频抓取、盗取隐私数据、破解反爬限制,合理合规地使用爬虫技术。)
经过一个学期的学习,我已经基本上掌握了以上Python基础内容,并根据所学知识进行了三次实验,进一步巩固了知识熟练程度。


2.课程感悟:
经过一学期的Python基础学习,我对编程有了初步的认识,也收获了不少实用知识。课堂上我学习了变量、循环、判断语句等基础内容,从简单的代码编写,到尝试完成小游戏、小工具等实践任务,一步步熟悉了Python的使用方法。
起初接触代码时,我常常出现语法错误,也难以理解逻辑思路。通过不断练习、调试程序,慢慢改掉了粗心的问题,学会了耐心排查错误。动手实践让我明白,编程不能只靠死记知识点,多敲代码、多思考才能真正掌握。
这门课程不仅教会我基础编程技能,也锻炼了我的逻辑思维和解决问题的能力。接下来我会继续巩固所学内容,多做实操练习,夯实编程基础,努力提升自己的代码编写能力。


3.课程建议:
结合一学期的学习体验,我对本门课程提出几点建议。
(1)课堂上建议增加实操演示环节,讲解知识点时搭配简单代码案例,让理论内容更直观,帮助我们快速理解语法逻辑。
(2)不少同学初学时常遇到报错问题,建议老师可以组建课后交流小组,方便大家互相答疑、交流思路。
(3)希望课程节奏可以兼顾不同基础的同学,对重难点内容放慢讲解速度、多重复举例。对于重点部分麻烦老师可以放慢一点速度,给基础较差的同学流出充足时间消化吸收知识。

posted @ 2026-05-26 20:57  20254223崔之垚  阅读(30)  评论(0)    收藏  举报