Python程序开发实训
(时量:240分钟)
中国·XX
实训说明
- 注意事项
1. 请根据提供的实训环境,检查所列的硬件设备、软件清单、材料清单是否齐全,计算机设备是否能正常使用。
2. 实训结束前,在实训平台提供的虚拟机中,根据题目将各个代码进行完善整合,并运行;根据实训平台左侧的答题区进行答题,根据题目对运行代码及结果进行截图。
3. 实训结束后,请将报告区的实训报告进行提交操作,实训报告在实训结束前可重复提交。
- 实训环境
1. PC机:系统已安装Python相关环境、MySQL数据库,数据库用户名和密码分别为:root/123456。
2. 根据题目说明,从实训平台虚拟机桌面获取程序开发项目工程代码包。桌面的工程代码可以直接使用虚拟机中的Pycharm导入、编译、运行和发布。
- 题目说明
本套题目包括五个部分:
第一部分为程序开发,第二部分数据获取,第三部分为数据清洗, 第四部分为数据处理,第五部分为数据可视化。请考生根据题目中所描述的需求编码实现功能。
题目
第一部分:程序开发(30分)
第1题:实现管理员登录功能(4.5分)
【任务要求】
本任务需要实现管理员登录功能,如果登录成功,进入首页,否则提示登录失败。
【任务描述】
- 登录页面如图1-1所示,帐户信息(用户名:admin,密码:admin)。
- 补充login函数代码,实现登录功能,即当管理员填写完登录信息以后,如果登录信息正确,进入登录首页。
- 将补全的代码截图复制粘贴至提交结果文档,将登录成功后进入的页面截图提交至结果文档。
- 截图页面需要包含完整的url链接。
【工程代码】
从虚拟机桌面 “Python开发实训/01工程代码/01程序开发/01工程代码”文件夹中获取程序开发项目工程代码。
【API接口】
接口名称 | API |
登录 API | http://127.0.0.1:8080/user/login |
图1-1 登录面
第2题:实现学生信息查询功能(10分)
【任务要求】
本任务需要实现如下功能:在学生信息界面,展示学生信息;并以学生学号或手机号为条件实现查询功能。
【任务描述】
- 登录学生信息管理网站(用户名:admin,密码:admin),登录页面如图1-1所示,进入首页。
- 补充student_index函数代码,按id降序排列,返回学生信息,并以每页10条数据进行分页,展示第1页、第5页数据。将补全的代码截图复制粘贴至提交结果文档,将展示的第1页、第5页的页面截图提交至结果文档。
- 补充student_index函数代码,实现按学号或手机号查询学生信息功能,查询学号为11038738的学生信息和电话为13158447573的学生信息。将补全的代码截图复制粘贴至提交结果文档,将展示的学号为11038738的学生信息页面和展示的电话为13158447573的学生信息页面截图提交至结果文档。
- 截图页面需要包含完整的url链接。
【工程代码】
从虚拟机桌面 “Python开发实训/01工程代码/01 程序开发/01 工程代码”文件夹中获取程序开发项目工程代码。
【API接口】
接口名称 | API |
查询学生信息 API | http://127.0.0.1:8080/health/student_index/ |
第3题:实现编辑学生信息功能(10分)
【任务要求】
本任务需要实现如下功能:在学生管理-新增学生页面新建学生信息,在学生列表页面中,选择操作下的编辑功能,编辑指定学生信息的个人信息。
【任务描述】
- 登录学生信息管理网站(用户名:admin,密码:admin),登录页面如图1-1所示,进入首页。
- 补充student_create函数代码,实现新增学生信息功能,并新增一个学生信息,学号为11012345,姓名为张三,电话为13111223344,地址为湖南省长沙市橘子洲,院系为信息工程学院,专业为软件工程。新增完成后,在health/student_index/页面可以看到新增学生信息。将补全的代码截图复制粘贴至提交结果文档,将在health/student_index/页面查看到的新增学生张三的信息页面截图提交至结果文档。
- 补充student_update函数代码,实现编辑学生信息功能,编辑李金凤的个人信息,把电话号码修改为13511223344,把地址修改为四川省成都市天府广场。修改完成后,在health/student_index/页面可以看到修改后的学生信息。将补全的代码截图复制粘贴至提交结果文档,将在health/student_index/页面查看到的修改学生李金凤的信息页面截图提交至结果文档。
- 补充student_delete函数代码,实现删除学生功能,并删除张秀芳的学生信息。将补全的代码截图复制粘贴至提交结果文档,删除张秀芳学生信息之后将学生信息首页页面截图提交至结果文档。
- 截图页面需要包含完整的url链接。
【工程代码】
从虚拟机桌面 “Python开发实训/01工程代码/01 程序开发/01 工程代码”文件夹中获取程序开发项目工程代码。
【API接口】
接口名称 | API |
新建学生信息 API | http://127.0.0.1:8080/health/student_create/ |
修改学生信息 API | http://127.0.0.1:8080/health/student_update/ |
删除学生信息 API | http://127.0.0.1:8080/health/student_delete/ |
第4题:实现查询存在健康风险的学生功能(5.5分)
【任务要求】
本任务需要实现如下功能:健康管理-风险信息页面实现查询存在健康风险的学生功能。
【任务描述】
- 登录学生信息管理网站(用户名:admin,密码:admin),登录页面如图1-1所示,进入首页。
- 补充health_risk函数,实现筛选存在健康风险学生信息功能,返回所有在2021.12.02(包括12.02)-2021.12.17(包括12.17)时间段内,有新冠肺炎症状或途径风险区或体温大于等于37度的学生,且按申报时间降序排列。将补全的代码截图复制粘贴至提交结果文档,将健康风险学生信息查询页面截图提交至结果文档。
- 截图页面需要包含完整的url链接。
【工程代码】
从虚拟机桌面 “Python开发实训/01工程代码/01 程序开发/01 工程代码”文件夹中获取程序开发项目工程代码。
【API接口】
接口名称 | API |
存在健康风险学生信息 API | http://127.0.0.1:8080/health/health_risk/ |
第二部分:数据获取(20分)
第5题:利用urllib库和BS4抓取疫情数据。
【任务要求】
基于Python爬虫代码从指定静态网页中抓取全球国家疫情数据,爬取内容包括:国家、现存确诊、累计确诊、死亡、治愈。再将爬取的数据写入数据库中。
【任务描述】
1、完善Task.py的内容,并将函数内容复制粘贴至提交结果文档。
1)getHtml()函数用于发送请求,解析html网页,请将完整的getHtml()函数截图复制粘贴至提交结果文档。
2)getData()函数使用beautifulSoup中的方法,从html网页中获取全球的国家名称、现存确诊人数、累计确诊人数、死亡人数、治愈人数,将获取到的数据保存到列表中,将此列表以参数形式传递到下一个函数。请将完整的getData()函数内容截图复制粘贴至提交结果文档。
3)函数toMysql()创建MySql数据库链接,将获取到的数据写入到数据表中(数据表需要使用sql指令自行创建)。请将完整的toMysql()函数内容截图复制粘贴至提交结果文档。
2、运行代码,使用SQL命令查看数据表前40条数据和最后40条数据, 将查看结果复制粘贴至提交结果文档。
【工程代码】
从虚拟机桌面 “Python开发实训/01工程代码/02 数据获取/05 工程代码”文件夹中获取数据获取项目工程代码。
第三部分:数据清洗(15分)
第6题:使用Pandas对疫情数据进行清洗分析(15分)
【任务要求】
利用Pandas函数完成对疫情数据进行清洗,包括数据缺失值的查找、重复数据处理、缺失数据替换和删除等。
【任务描述】
1、数据说明:
数据一共五列,分别为国家名称,省份名称,更新时间,城市名称,城市确诊人数。
2、完善Num06.py文件中的内容,并将函数内容截图提交至结果文档。
- getNumberofData()函数用于获取data共有多少条数据。
- checkMissingData()函数用于检查数据集中缺失的数据项,请将完整的checkMissingData()函数截图提交至结果文档。
- NanFilling()函数用于对缺失的数据项进行填补,请将完整的NanFilling()函数截图提交至结果文档。
- DeleteRedundantData()函数用于对冗余数据进行删除,请将完整的DeleteRedundantData()函数截图提交至结果文档。
- deleteMissingData()函数用于对缺失的数据项进行删除,请将完整的deleteMissingData()函数截图提交至结果文档。
- 完成主函数代码,通过代码实现结果保存,查看前10条和后10条数据,请将完整的主函数截图提交至结果文档。
- 打开保存的文件查看结果内容,并截图提交至结果文档。
【工程代码】
从虚拟机桌面 “Python开发实训/01工程代码/03 数据清洗/06 工程代码”文件夹中获取数据清洗项目工程代码。
第四部分:数据处理(20分)
第7题:使用re模块对疫情数据进行处理(10分)
【任务要求】
使用re模块,结合正则表达式来筛选符合要求的数据。
【任务描述】
1、数据说明:
从2019年末到2020年初,从武汉到全国,新冠肺炎疫情持续发展,中国战“疫”一刻不歇,该文档按行收录了疫情相关信息及口号。
2、完善Num07.py文件中内容,并将函数内容截图复制粘贴至提交结果文档。
- data_pro()为数据处理函数,读取同级目录下待处理的txt文件,按行处理进行规则匹配,保留中英文及数字(\u4e00和\u9fa5是Unicode值,分别表示中文字符的头和尾),将符合要求的数据进行无分隔符的拼接,并按行写入当前目录下’数据处理后结果.txt’文件内。请将完整的data_pro()函数截图复制粘贴至提交结果文档。
- 结果运行并保存,打开保存的文件查看数据处理后的结果,将结果截图,并将截图提交至结果文档。
【工程代码】
从虚拟机桌面 “Python开发实训/01工程代码/04 数据处理/07 工程代码”文件夹中获取数据处理项目工程代码。
第8题:使用os模块对疫情数据进行处理(10分)
【任务要求】
使用os模块,实现文件路径的切换及查找等。
【任务描述】
1、完善Num08.py文件中内容,并将结果按要求提交至结果文档。
- search_file()作用为寻找符合要求的文件的路径,要查找的文件类型为txt和jpg,找出指定路径下所有符合要求的文件的路径,将结果添加进事先创建好的列表file_list中。
请将完整的search_file()函数截图提交至结果文档。
- save_file()为保存文件的函数,将指定文件存放在当前目录下RES文件夹内,若不存在该路径则写代码创建该路径,将file_list的结果按行写入文件夹内fileList.txt文件下请将完整的save_file()函数截图复制粘贴至提交结果文档。
- 结果运行并保存,打开保存的文件查看数据处理后的结果,将结果截图,并将截图提交至结果文档。
【工程代码】
从虚拟机桌面 “Python开发实训/01工程代码/04 数据处理/08 工程代码”文件夹中获取数据处理项目工程代码。
任务五:数据可视化(15分)
第9题:使用Matplotlib对疫情数据进行可视化展示(8分)
【任务要求】
编写Python程序,使用Matplotlib对疫情相关数据进行分析并进行可视化展示,并按要求存放数据分析和可视化结果。
【任务描述】
1、折线图说明
- 完善Num09.py文件中plt_img1()函数代码绘制折线图,数据为当前目录下的cs_area.csv文件,根据更新时间和城市确诊数量绘图:
①、需创建画布,指定大小为(15,5)
②、绘制标题(长沙市疫情走势),字体大小指定为20
③、添加X轴标签和Y轴标签分别为更新时间、城市确诊人数,均指定字体大小为12
④、绘制折线图,必须指定线的风格为‘-’,颜色指定为‘#68BFCF’
⑤、在每个数据对应的坐标点处绘制一个点,颜色指定为‘#DF927C’,点的大小指定为20,并在每个坐标点旁显示其对应的Y值大小(x轴方向偏左0.1,y轴方向偏上0.2)
⑥、绘制网格线
⑦、保存图片到当前目录下文件名为img_1.jpg,并显示图片请将完整的plt_img1()函数截图提交至结果文档。
- 输出折线图,将可视化结果截图并保存至提交结果文档。
- 参考图如下:
2、柱状图说明
1)完善Num09.py文件中plt_img2()函数代码绘制柱状图,数据 为当前目录下cs_area.csv,根据更新时间和城市确诊数量绘 图:
①、需创建画布,指定大小为(15,5)
②、绘制标题(长沙市确诊人数),字体大小指定为20
③、添加X轴标签和Y轴标签分别为更新时间、城市确诊人数,均指定字体大小为12
④、设置Y轴刻度(0,300),并显示刻度值(0,100,200)
⑤、根据XY值绘制柱状图,一共7条数据,指定颜色为['#DF927C','#A3C272','#FED863','#68BFCF','#1585DB','#D84F50','#C2E67F'],宽度指定为0.3
⑥、在每个柱状图上方(X轴方向偏左0.02,Y轴方向偏上0.8),显示其对应Y值得大小,指定为int类型
⑦、绘制网格线
⑧、保存图片到当前目录下文件名为img_2.jpg,并显示图片
请将完整的plt_img2()函数截图提交至结果文档。
2)输出柱状图,将可视化结果截图并保存至提交结果文档。
3)参考图如下:
3、饼图说明
1)完善Num09.py文件中plt_img3()函数代码绘制饼图,数据为 当前目录下hn_area.csv,根据城市名称和城市确诊数量绘图:
①、需创建画布,指定大小为(10,10)
②、绘制标题(湖南省各地区疫情确诊人数占比),字体大小指定为20
③、根据城市名称和城市确诊数量绘制饼图,占比显示设置为两位小数
④、添加图例,位置放在右上方
⑤、保存图片到当前目录下,文件名为img_3.jpg,并显示图片
请将完整的plt_img3()函数截图提交至结果文档。
2)输出饼图,将可视化结果截图并保存至提交结果文档。
3)参考图如下:
【工程代码】
从虚拟机桌面 “Python开发实训/01工程代码/05 数据可视化/09 工程代码”文件夹中获取数据可视化项目工程代码。
第10题:使用wordcloud对疫情数据进行可视化展示(7分)
【任务要求】
使用wordcloud模块,实现词云图的绘制。
【任务描述】
- 词云图说明
1)完善Num10.py文件中plt_img4()函数代码绘制词云图,数据为当前目录下convid.txt
①、取好数据后进行words=jieba.lcut(data)处理,将处理后的数据words进行无分隔符的拼接生成新字符。
②、成wordcloud对象,字体指定为msyh.ttc,宽指定为1100,高指定为860,背景颜色指定为白色
③、根据步骤①把处理好的文本生成词云
④、把生成的词云图保存到当前目录下,文件名为img_4.jpg
请将完整的plt_img4()函数截图提交至结果文档。
2)输出词云图,将可视化结果截图并保存至提交结果文档。
【工程代码】
从虚拟机桌面 “Python开发实训/01工程代码/05 数据可视化/10 工程代码”文件夹中获取数据可视化项目工程代码。