Python技能大赛赛题

【Python 程序开发】赛项竞赛任务书

2024 年 5 月

赛题说明

一、竞赛内容

本试卷包含“计算机理论基础”、“数据库系统运维”、“Python 程序开发”三个模块,赛项满分 100 分,其中模块一“计算机理论基础”为理论题。

二、竞赛时间

竞赛时间:共计 240 分钟

三、竞赛事项要求

1、参赛选手不得携带通信设备等物品进入赛场,严禁在程序及运行结果中任何位置标注竞赛队的任何信息,违反者按作弊处理。

2、请根据大赛所提供的竞赛环境,检查所列的硬件设备、软件清单、 材料清单是否齐全,计算机设备是否能正常使用。

3、竞赛结束前,整合各试题的操作过程和结果数据,并提交完整的文档、代码、截图等竞赛结果到指定目录中。

4、竞赛结束时,后台统一关闭答题通道,禁止将比赛所用的所有物品(包括试卷和稿纸)带离赛场。

模块一:计算机理论基础(30分)

任务一:单选题(10分)

1、本模块为理论题,每题 1分。

2、请将答案填写到虚拟机答题区对应位置。

1.Python之父为( )。

    1. James Gosling
    2. Guido van Rossum
    3. Rasmus Lerdorf
    4. Dennis MacAlistair Ritchie

2.以下哪个不是 Python的特点( )。

    1. 简单易学
    2. 免费开源
    3. 跨平台
    4. 执行速度快

3.表达式 10 and 20的结果是( )。

    1. 10
    2. 20
    3. True
    4. False

4.以下哪个是合法的标识符( )。

    1. $ab
    2. a a
    3. _ab
    4. if

5.以下代码执行结果是( )。

图片[1]-Python技能大赛赛题-ZX社区

    1. 5
    2. 10
    3. 30
    4. None

6.“abc”.isupper()的结果是( )。

    1. True
    2. False
    3. “abc”
    4. “ABC”

7.“abcabc” // 2的结果是( )。

    1. “abc”
    2. “abcabc”
    3. None
    4. 报错

8.while语句的作用是( )。

    1. 循环执行某些代码
    2. 根据条件选择执行某分支代码
    3. 顺序执行某些代码
    4. 从后往前执行某些代码

9.以下代码的执行结果是( )。

图片[2]-Python技能大赛赛题-ZX社区

    1. 20
    2. 25
    3. 30
    4. 10

10.执行 len(range(1, 10, 2))的结果是( )。

    1. 1
    2. 3
    3. 5
    4. 7

任务二:多选题(10 分)

1、本模块为理论题,每题 2 份。

2、请将答案填写到虚拟机答题区对应位置。

  1. 以下哪些是 Python支持的数据类型( )。
    1. char
    2. int
    3. float
    4. list
  2. 导入模块的方式正确的是( )。
    1. import mo
    2. form mo as m import xx
    3. import mo as m
    4. import m from mo
  3. 下列哪些类型不是 Python的映射类型( )。
    1. str
    2. list
    3. tuple
    4. dict
  4. Python中的集合可以支持数学上的以下哪些运算( )。
    1. 交集
    2. 并集
    3. 差集
    4. 矩阵
  5. 编程语言一般的编程模式有哪些( )。
    1. 面向过程
    2. 函数式
    3. 面向字段
    4. 面向对象

任务三:判断题(10分)

1、本模块为理论题,每题 2分。

2、请将答案填写到虚拟机答题区对应位置。

  1. Python 不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数名的含义。( )
  2. 带有 else 子句的循环如果因为执行了 break 语句而退出的话, 则会执行 else 子句中的代码。( )
  3. 不同作用域中的同名变量之间互相不影响,也就是说,在不同的作用域内可以定义同名的变量。( )
  4. Python的第一个版本发布于 1991年 2月。( )
  5. 列表、字典、元组均可以作为字典的键。( )

模块二:数据库系统运维(25分)

环境说明

编号 主机名 类型 用户 密码
1 database MySQL数据库 root 123456
2 desktop 桌面 / /
补充说明:

  1. mysql服务器地址 database:3306
  2. desktop为桌面主机
  3. 可以在desktop上通过如下命令连接Mysql数据库

mysql -h database -p123456

  1. 也可以直接切换到database主机上操作MySQL数据库

相关数据库及数据表信息说明

数据库及数据表

数据库 数据表 备注
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)其他参数可自行调整。

图片[3]-Python技能大赛赛题-ZX社区

任务四:职业素养(5分)

【任务要求】

参赛选手操作规范、遵守考场纪律、收纳整理干净整洁、安全意 识良好、文明竞赛。

© 版权声明
THE END
喜欢就支持一下吧
点赞3 分享
评论 共2条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片