【Python 程序开发】赛项竞赛任务书
2024 年 5 月
赛题说明
一、竞赛内容
本试卷包含“计算机理论基础”、“数据库系统运维”、“Python 程序开发”三个模块,赛项满分 100 分,其中模块一“计算机理论基础”为理论题。
二、竞赛时间
竞赛时间:共计 240 分钟
三、竞赛事项要求
1、参赛选手不得携带通信设备等物品进入赛场,严禁在程序及运行结果中任何位置标注竞赛队的任何信息,违反者按作弊处理。
2、请根据大赛所提供的竞赛环境,检查所列的硬件设备、软件清单、 材料清单是否齐全,计算机设备是否能正常使用。
3、竞赛结束前,整合各试题的操作过程和结果数据,并提交完整的文档、代码、截图等竞赛结果到指定目录中。
4、竞赛结束时,后台统一关闭答题通道,禁止将比赛所用的所有物品(包括试卷和稿纸)带离赛场。
模块一:计算机理论基础(30分)
任务一:单选题(10分)
1、本模块为理论题,每题 1分。
2、请将答案填写到虚拟机答题区对应位置。
1.Python之父为( )。
-
- James Gosling
- Guido van Rossum
- Rasmus Lerdorf
- Dennis MacAlistair Ritchie
2.以下哪个不是 Python的特点( )。
-
- 简单易学
- 免费开源
- 跨平台
- 执行速度快
3.表达式 10 and 20的结果是( )。
-
- 10
- 20
- True
- False
4.以下哪个是合法的标识符( )。
-
- $ab
- a a
- _ab
- if
5.以下代码执行结果是( )。
-
- 5
- 10
- 30
- None
6.“abc”.isupper()的结果是( )。
-
- True
- False
- “abc”
- “ABC”
7.“abcabc” // 2的结果是( )。
-
- “abc”
- “abcabc”
- None
- 报错
8.while语句的作用是( )。
-
- 循环执行某些代码
- 根据条件选择执行某分支代码
- 顺序执行某些代码
- 从后往前执行某些代码
9.以下代码的执行结果是( )。
-
- 20
- 25
- 30
- 10
10.执行 len(range(1, 10, 2))的结果是( )。
-
- 1
- 3
- 5
- 7
任务二:多选题(10 分)
1、本模块为理论题,每题 2 份。
2、请将答案填写到虚拟机答题区对应位置。
- 以下哪些是 Python支持的数据类型( )。
- char
- int
- float
- list
- 导入模块的方式正确的是( )。
- import mo
- form mo as m import xx
- import mo as m
- import m from mo
- 下列哪些类型不是 Python的映射类型( )。
- str
- list
- tuple
- dict
- Python中的集合可以支持数学上的以下哪些运算( )。
- 交集
- 并集
- 差集
- 矩阵
- 编程语言一般的编程模式有哪些( )。
- 面向过程
- 函数式
- 面向字段
- 面向对象
任务三:判断题(10分)
1、本模块为理论题,每题 2分。
2、请将答案填写到虚拟机答题区对应位置。
- Python 不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数名的含义。( )
- 带有 else 子句的循环如果因为执行了 break 语句而退出的话, 则会执行 else 子句中的代码。( )
- 不同作用域中的同名变量之间互相不影响,也就是说,在不同的作用域内可以定义同名的变量。( )
- Python的第一个版本发布于 1991年 2月。( )
- 列表、字典、元组均可以作为字典的键。( )
模块二:数据库系统运维(25分)
环境说明
编号 | 主机名 | 类型 | 用户 | 密码 |
1 | database | MySQL数据库 | root | 123456 |
2 | desktop | 桌面 | / | / |
补充说明:
mysql -h database -p123456
|
相关数据库及数据表信息说明
数据库及数据表
数据库 | 数据表 | 备注 |
MovieDB | movies | 电影表 |
ratings | 评分表 | |
users | 用户表 |
movies表字段说明
表名 | 列名 | 数据类型 | 备注 |
movies | movie_id | int | 电影ID |
title | varchar | 电影标题 | |
genres | varchar | Animation 动画 Children’s 儿童 Comedy 喜剧 Crime 犯罪 Documentary 纪录片 Drama 戏剧 Fantasy 幻想 Film-Noir 胶片噪声 Horror 恐怖 Musical 音乐剧 Mystery 神秘 Romance 浪漫 Sci-Fi 科幻 Thriller 惊悚片 War 战争Western 西部 |
ratings表字段说明
表名 | 列名 | 数据类型 | 备注 |
ratings | id | int | 主键ID |
user_id | int | 用户ID,范围在1到6040之间 | |
movie_id | int | 电影ID,范围在1到3952之间 | |
rating | int | 评分,评分等级为1-5 | |
timestamp | varchar | 时间戳 |
users表字段说明
表名 | 列名 | 数据类型 | 备注 |
users | user_id | int | 用户ID |
gender | varchar | 性别,用“M”表示男性,用 “F”表示女性 |
|
age | int | 年龄,可从以下范围中选择: 1:“Under 18” 18:“18-24” 25:“25-34” 35:“35-44” 45:“45-49” 50:“50-55”56:“56+” |
任务一:数据库系统之用户与权限管理(5分)
【任务要求】
本环节需要使用 MySQL 数据库系统完成关于用户管理与权限管理的操作。
【任务需求背景】
MySQL 是一个多用户数据库,具有功能强大的访问控制系统,可以为不同用户指定不同权限。root 用户是超级管理员,拥有所有权限,包括创建用户、删除用户和修改用户密码等管理权限。
为了实际项目的需要,可以定义不同的用户角色,并为不同的角色赋予不同的操作权限。当用户访问数据库时,需要先验证该用户是否为合法用户,再约束该用户只能在被赋予的权限范围内操作。
【具体任务】
1、为本地主机数据库创建一个名为 competitor 的用户,密码为 cpttor123,将完整命令及结果截图粘贴到对应答题报告中;
2、查看用户,确认有刚才创建的 competitor 用户,将完整命令及结果截图粘贴到对应答题报告中;
3、将用户名 competitor 修改为 competitor01,将完整命令及结果截图粘贴到对应答题报告中;
4、使用新用户 competitor01 登录 MySQL 数据库,将完整命令及结果截图粘贴到对应答题报告中;
5、授予用户 competitor01 对 MovieDB 数据库中所有表的所有权限,将完整命令及结果截图粘贴到对应答题报告中;
任务二:数据库系统之数据表管理(6分)
【任务要求】
本环节需要使用 MySQL 数据库系统完成关于电影信息的建库、建表、数据的导入、数据表的管理等操作。
【任务需求背景】
在今天的数字娱乐时代,电影产业扮演着至关重要的角色,为观众提供了无尽的选择。了解观众对电影的评分和喜好是制作和推荐电影的 关键因素之一。因此,我们决定建立一个电影评分信息管理系统,以更好地了解和分析电影评分数据,提供更精准的电影推荐服务,并深入了解市场趋势和用户口味。
【具体任务】
1、在 MySQL 数据库的 MovieDB 库中,创建一个名为 users 的数据表,指定 user_id 字段为主键,该字段非空,数据库引擎为 InnoDB,默认字符集为 utf8。
2、查看刚才创建的 users 表结构,将完整命令及结果截图粘贴到对应答题报告中;
3、执行 database 主机/usr/local/src 目录下的 users.sql 文件, 将数据导入到刚才创建的 users 表中,将完整命令及结果截图粘贴到对应答题报告中;
4、使用 SQL 命令查看 users 表中前 15 条数据(查询结果只显示前 15 条数据),将完整命令及结果截图粘贴到对应答题报告中;
5、使用 SQL 命令查看 users 表中第 1001 至第 1010 条数据(查询结果只显示第 1001 至第 1010 条数据),将完整命令及结果截图粘贴到对应答题报告中;
任务三:数据库系统之数据管理(14分)
【任务要求】
本环节需要使用 SQL 语句对数据表的数据进行查询和统计。
【任务需求背景】
SQL 作为一种全球通用的语言,任何人都可以学习使用。虽然看起来很复杂,除开特定数据库系统专用的 SQL 命令,其它基本上不需要任何事先的知识,而且命令通常比较少。SQL 能够快速的查询和统计大量数据, 发现数据的趋势和数据之间的关系。SQL 是一种与数据库打交道的标准语言,熟练地使用 SQL 可以确保每个使用数据库的人都会使用相同的命令, 使得开发人员更容易创建与多个数据库一起工作的应用程序。
【具体任务】
1、使用 SQL 语句查询 users 表中职业为程序员的女性用户。将完整SQL 语句和运行结果的后 5 条数据以及总数据行数截图粘贴到对应答题报 告中;
2、使用 SQL 语句查询 users 表中年龄大于等于 18 岁且小于 45 岁的用户。将完整 SQL 语句和运行结果的后5条数据以及总数据行数截图 粘贴到对应答题报告中;
3、使用 SQL 语句查询 movies 表中电影类型包含冒险和恐怖的电影。 将完整 SQL 语句和运行结果以及总数据行数截图粘贴到对应答题报告中;
4、使用 SQL 语句查询被 user_id 为 100 的用户评分过的电影,输出用户id、电影 id、电影标题、评分、时间戳。将完整 SQL 语句和运行结果的后 5 条数据以及总数据行数截图粘贴到对应答题报告中;
5、使用 SQL 语句查询 users 表中 user_id 的最大值和最小值。 将完整 SQL 语句及运行结果截图粘贴到对应答题报告中;
6、使用 SQL 语句统计 ratings 表中每个用户所评分电影的平均分, 输出用户 id 及他评论电影的平均分。将完整 SQL 语句和运行结果的后 5 条数据以及总数据行数截图粘贴到对应答题报告中;
7、使用 SQL 语句统计 ratings 表中 movie_id 大于等于 2500 且小于等于 2510 的电影的最高评分、最低评分、和平均评分,输出格式需包含 movie_id。将完整 SQL 语句及运行结果截图粘贴到对应答题报告中;
8、使用 SQL 语句查询邮编为55117的用户们对标题为 Toy Story(1995)的电影的评分,输出用户 id、用户年龄、电影 id、电影标题、评分、评分时间戳。将完整 SQL 语句及运行结果截图粘贴到对应答题报告中;
9、使用 SQL 语句统计用户各职业对电影的平均评分,输出职业和平均分。将完整 SQL 语句及运行结果截图粘贴到对应答题报告中;
10、使用 SQL 语句统计哪个年龄段参与电影评分的次数最多,输出龄和评分次数。将完整 SQL 语句及运行结果截图粘贴到对应答题报告中。
11、使用 SQL 语句给 users 表中插入一条数据,数据的具体信息如下:用户 ID 为 6041、性别为女性、年龄为 25-34 岁、职业为医生、邮编为 11106。将完整 SQL 语句及运行结果截图粘贴到对应答题报告中。
12、使用 SQL语句批量给 movies 表中插入两条数据,数据的具体信息如下:电影 ID 为 3953、电影标题为 Titanic、电影类型为浪漫;电影ID为 3954、电影标题为 Under the Light、电影类型为犯罪和神秘。将完整 SQL 语句及运行结果截图粘贴到对应答题报告中。
13、使用 SQL 语句修改 users 表中用户 ID 为 6041 的用户信息, 将邮编改为02460。将完整 SQL 语句及运行结果截图粘贴到对应答题报告中。
14、使用 SQL 语句删除 movies 表中电影 ID 为 3954 的数据。将完 整 SQL 语句及运行结果截图粘贴到对应答题报告中。
模块三:Python程序开发(45分)
任务一:Python数据清洗(10 分)
【任务要求】
编写 Python 程序,使用 pandas 库对数据进行清洗操作,如数据格式统一、重复值、缺失值处理,以确保其准确性、完整性和可用性。
【任务需求背景】
在数据分析过程中,数据清洗是一项非常重要的任务,因为清洗数据 可以减少错误率,提高数据的质量,使企业更好地利用数据资源进行数据分析及数据挖掘。
【具体任务】
1、从虚拟机桌面 “赛题/03 Python 程序开发/01 Python 数据清洗 ” 文件夹中获取该工程代码及数据,数据为一份电影数据集名为“movie.csv”,字段说明见下表。
电影数据集字段说明表
数据字段 | 字段说明 |
movie_name | 电影名 |
director | 导演 |
editor | 编辑 |
actor | 演员 |
movie_type | 电影类型 |
score | 电影评分 |
comments | 评论数 |
five_star | 五星评论比例 |
four_star | 四星评论比例 |
three_star | 三星评论比例 |
two_star | 两星评论比例 |
one_star | 一星评论比例 |
language | 语言 |
region | 地区 |
2、在“data_process.py”文件中实现数据清洗操作,实现对评分和评分星级处理:评分和评分星级数据类型不便于后续进行计算, 经过必要的处理将其处理为数字型。其中如果某列有缺失,需要根据已有的评分和评分星级进行计算得到。数据类型处理策略:
其中score处理为浮点型,四舍五入保留1位浮点数。
评分星级也处理为浮点型,四舍五入保留3位浮点数。
3、处理完成之后,将其保存到当前项目下的“deal_data”目录中,命名为“movie_deal.csv”,注意不要改变原来列数据的顺序, 列名需要保留。
任务二:Python数据处理(20分)
【任务要求】
编写 Python 程序,使用 pandas 库对数据进行处理操作,包括 数据计算、数据分组聚合、数据排序、数据存储等。
【任务需求背景】
本任务需要使用任务一清洗后的数据,使用 Python 语言根据要 求对数据进行统计分析操作,并将处理后的数据进行存储。
【具体任务】
1、从虚拟机桌面 “赛题/03 Python 程序开发/02 Python 数据 处理 ”文件夹中获取该工程代码, 数据为清洗后的电影数据“movie_deal.csv”文件。
2、在“data_calc.py”中实现数据计算操作,具体要求如下
(1)读取清洗后的数据。
(2)统计出演电影最多的演员信息:计算演出电影最多的 20 名 演员,并按降序进行排序,计算完成后,将其保存到当前项目下的
“ deal_data” 目录中,命名为“count.csv”,保存的字段包括 actor(演员名)、count(参演电影数)、score(演员参演电影平均评分)。
(3)计算参演电影大于等于10部的平均评分最高的前20名演员,并按降序进行排序,计算完成后, 将其保存到当前项目下的 “ deal_data” 目录中,命名为“score.csv”,保存的字段包括 actor(演员名)、count(参演电影数)、score(演员参演电影平均评 分);
3、完成编码后,参考竞赛平台左侧答题区要求,将所需实现的代码/结果进行截图粘贴到答题对应区域,并点击提交按钮实时保存报告。
任务三:Python 数据可视化(10 分)
【任务要求】
编写 Python 程序,使用 pandas 库对数据进行处理操作,包括数据计算、数据分组聚合、数据排序、数据存储等。
【任务需求背景】
在影院后台统计平台上,各影院的电影购票、场次信息能反映不同区域的消费能力。本任务需要使用 Python加载 csv 数据,对电影 情况进行分析展示。
【具体任务】
从虚拟机桌面 “赛题/03 Python 程序开发/03 Python 数据 可视化 ” 文 件 夹 中 获 取 该 工 程 代 码 , 数据为 电影 销售 数据 “movies.csv”文件。包含电影名称、导演、编剧、主演、电影各星 级评分情况、电影评论认识、电影评分等字段。
2、使用 python 加载 csv 文件,对数据按照评分数进行倒序排序, 选取评分最高的前 20 个电影数据,绘制柱状图进行展示,要求如下:
(1)柱状图标题设置为“电影热销榜”,居中显示,字号 24。
(2)柱状图横轴标签显示为电影名称,电影名称不能重叠,字体 12,。电影名称顺序从左往右的评分依次降低。纵轴显示为电影的评分。
(3)需要显示数据标签,显示在柱子的上方居中。
(4)其他参数可自行调整。
任务四:职业素养(5分)
【任务要求】
参赛选手操作规范、遵守考场纪律、收纳整理干净整洁、安全意 识良好、文明竞赛。
- 最新
- 最热
只看作者