市赛python学习

三、实战任务(day01)

任务 1:数字筛选(省赛样题「模块二任务一」原式,★★★★★ 必背)

数据文件 :numbers.txt(当前目录,两行,空格分隔,只含整数和小数)

任务要求:

  1. 读取文件中的全部数据;
  2. 筛选出偶数 和奇数 ,分别存入两个新列表,小数不纳入奇偶列表;
  3. 计算偶数列表的总和、奇数列表的最大值;
  4. 严格按以下格式输出:
    偶数列表:[8, 12, 100, 6],偶数总和:126
    奇数列表:[3, 7, 33, 9, 21],奇数最大值:33

过关标准 :输出与上面一字不差(列表用 Python 默认打印格式,逗号后有空格)。


任务 2:整数/小数分类统计

数据文件 :numbers.txt

任务要求:

  1. 统计文件中整数的个数、整数的总和;
  2. 统计小数的个数、小数中的最大值;
  3. 输出格式:
    整数个数:9,整数总和:199
    小数个数:3,小数最大值:4.75

过关标准:四个数字全对;会区分"整数"和"小数"(看有没有小数点)。


任务 3:字符串处理综合

任务要求 :对字符串 s = "Hello World Hello Python Hello BigData" 完成:

  1. 统计单词个数;
  2. 找出最长的单词;
  3. 统计 Hello 出现的次数;
  4. 把 Hello 全部替换为 Hi;
  5. 把句子按单词顺序反转输出;
  6. 写一个函数 is_palindrome(text),判断字符串是否回文(正读反读相同),测试 "上海自来水来自海上"。

任务 4:学生成绩统计系统(省赛样题「模块二任务二」原式,★★★★★ 必背)

任务要求:

  1. 从控制台接收 10 名学生的姓名和数学、语文、英语三科成绩,输入格式:张三 90 85 95,输入空行终止输入;
  2. 计算每个学生的总分和平均分;
  3. 统计三科的最高分、最低分及平均分;
  4. 所有计算结果保留 1 位小数;
  5. 输出格式:
    • 逐行:姓名 数学 语文 英语 总分 平均分(如 张三 90.0 85.0 95.0 270.0 90.0)
    • 三科统计:科目:最高分 最低分 平均分(如 数学:95.0 70.0 84.5)

三、实战任务(day02)

任务 1:文件版成绩统计(Day1 任务 4 的文件版)

数据文件 :score.txt(10 名学生,每行格式:姓名 数学 语文 英语)

任务要求:

  1. 从 score.txt 读取全部学生成绩;
  2. 计算每人总分、平均分(保留 1 位小数);
  3. 按总分降序 排名,逐行打印并写入 result.txt,格式:
    第1名 吴八 数学:95.0 语文:89.0 英语:92.0 总分:276.0 平均分:92.0
  4. 打印班级总分最高的学生和平均分最高的学生。

过关标准 :result.txt 生成成功;第一名是吴八(总分 276.0)。


任务 2:常用函数库

任务要求:编写并调用以下函数(每个函数都要有注释):

  1. is_prime(n):判断素数;
  2. factorial(n):阶乘;
  3. fibonacci(n):返回斐波那契数列前 n 项;
  4. gcd(a, b):最大公约数;
  5. is_palindrome(text):判断回文。

然后调用演示:输出 1~50 的素数、10 的阶乘、斐波那契前 10 项、24 和 36 的最大公约数、"上海自来水来自海上" 是否回文。


任务 3:不用 pandas(改为使用pandas库),统计用户行为日志

数据文件 :behavior2023-01-01.csv(真实用户行为日志,列:client_ip, device_type, type, device, url, time)

任务要求 (只用 Python 标准库 csv):

  1. 统计各 device_type 的数量;
  2. 提取每条 URL 的域名 (如 shop.example.com),统计各域名访问次数;
    • 注意:数据里可能有空 URL,要先判断再切分,空值归入"未知",保证程序不崩;
  3. 从 time 列(如 2023-01-01 23:06:43)提取小时,统计各小时访问量;
  4. 把三项统计写入 report.txt 并打印。

三、实战任务(day03)

任务 1:order.csv 读取与探查

数据文件 :order.csv(电商订单,29 行 9 列)

任务要求:

  1. 读取 CSV,打印数据形状、列名、各列数据类型;
  2. 打印前 5 行、后 5 行;
  3. 计算 total_amount 的总和、均值、最大值、最小值;
  4. 打印 quantity / unit_price / total_amount 三列的 describe()。

过关标准:形状是 (29, 9);总和 125123;均值约 4314.59。


任务 2:用户行为日志探查

数据文件 :behavior2023-01-01.csv(130 行,列:client_ip, device_type, type, device, url, time)

任务要求:

  1. 读取数据,打印形状、列名、前 5 行;
  2. 统计各 device_type 数量(含缺失值,用 dropna=False);
  3. 统计各 type(网络类型)数量;
  4. 统计 5G 的记录数;
  5. 统计 URL 中包含 shop 的记录数;
  6. 从 time 列提取小时(2023-01-01 23:06:43 → 23),统计各小时访问量,打印 TOP3。

过关标准:5G 有 37 条;URL 含 shop 有 32 条;TOP3 小时是 21 点(14 次)、23 点(11 次)、19 点(9 次)。


任务 3:条件筛选 + 排序 + 新增列

数据文件 :order.csv

任务要求:

  1. 筛选 category == "数码配件" 且 quantity >= 2 的记录,按 total_amount 降序取前 5,只打印 product / quantity / total_amount 三列;
  2. 统计城市是"合肥市"或"淮南市"的订单数;
  3. 统计单价在 300~1000 之间的订单数;
  4. 新增两列:discount_price(单价打 9 折)、is_big_order(总金额 >= 2000),打印前 5 行的 product / unit_price / discount_price / total_amount / is_big_order。

过关标准:第 1 步 TOP5 第一名是智能手机(数量 3,金额 11997);合肥/淮南订单 6 单;300~1000 有 9 单。


任务 4:日期列操作

数据文件 :salesQ1.csv(一季度销售,日期格式规整)

任务要求:

  1. 把 date 列转成日期类型,打印转换后的类型;
  2. 新增 year / month / day / weekday 四列,打印前 5 行;
  3. 统计各月订单量;
  4. 筛选 1 月的订单,打印条数;
  5. 用日期范围筛选 2 月的订单,打印条数。

过关标准:1 月 14 单、2 月 14 单(各月都是 14 单)。

三、实战任务(day04)

任务 1:order.csv 清洗全套(省赛样题「模块三任务一」原式,★★★★★ 必背)

数据文件 :order.csv

任务要求(严格按样题顺序):

  1. 读取数据集,打印数据的最后 5 行;
  2. 清除数据中的重复行,保留第一次出现的数据;
  3. 日期列格式不统一,统一转换为 YYYY-MM-DD 格式;
  4. 检查 order_id 列,若存在缺失值,删除包含缺失值的对应行;
  5. 处理完成后,将清洗后的数据保存到 deal_data/clean_order.csv,保留原数据的列顺序及列名;
  6. 每一步都打印出行数变化。

过关标准 :29 行 → 去重后 26 行 → 删缺失后 23 行;deal_data/clean_order.csv 生成成功,日期全是 2025-01-05 样式。


任务 2:salesQ1.csv 清洗(省赛样题「模块三任务二」同款清洗)

数据文件 :salesQ1.csv

任务要求:

  1. 读取数据,打印原始行数;
  2. 销售数量 quantity 存在负数,属于异常值,将小于 1 的统一处理为 1;
  3. 订单状态 status 存在缺失值,将缺失值统一填充为"已失效";
  4. 保持原始顺序不变,保存到 deal_data/Q1_clean.csv。

过关标准:异常数量 6 行、status 缺失 5 行;保存成功且行序不变。


任务 3:IP 分析与地域标注

数据文件 :behavior2023-01-01.csv(真实日志)、ip_demo.csv(演练 IP 列表)、area.json(IP→省市规则)、dim_area.txt(省市维度表)

任务要求:

  1. 真实日志部分:盘点各列缺失值数量;提取 IP 前两段作为"网段",统计访问量 TOP5;识别无效 IP(每段应在 0~255 之间),打印无效记录;
  2. 标注演练部分 :读取 ip_demo.csv,用 area.json 的前缀规则给每个 IP 标注省/市(匹配不到标"未知");用 dim_area.txt 校验标注出的省市组合是否合法,打印不合法的记录数;统计各省数量;保存 deal_data/ip_demo_with_area.csv。

过关标准:真实日志有 3 条无效 IP(999.999.999.999);device_type 缺失 9 条、type 缺失 8 条、url 缺失 2 条;ip_demo 标注后:安徽 5、浙江 2、河南 2、江苏 1、未知 1。


任务 4:异常值识别与修正

数据文件 :deal_data/clean_order.csv(任务 1 的产物)

任务要求:

  1. 新增一列 calc_amount = quantity * unit_price,找出 total_amount 与 calc_amount 不符的记录并打印;
  2. 以 数量 × 单价 为准修正这些记录,删掉辅助列;
  3. 用 IQR 方法识别 total_amount 异常值,打印上下界和异常记录数;
  4. 保存 deal_data/clean_order_fixed.csv。

过关标准:能找出 A1099(蓝牙耳机,2×499=998 却写成 500)并修正为 998。

相关推荐
高洁011 小时前
知识图谱:结构化表达实体与关系的知识组织技术
人工智能·python·深度学习·机器学习·迁移学习
骊山道童1 小时前
第 1 周 LLM 原理与高效微调知识精讲手册
python
Metaphor6922 小时前
轻松使用 Python 将 RTF 转换为 Word(含批量转换与格式互转)
python·word·rtf
zh路西法2 小时前
【深入理解 LSTM】从时间反向传播(BPTT)到长时记忆:门控机制与实验验证
pytorch·python·rnn·gru·lstm·bptt
青少儿编程课堂2 小时前
蓝桥杯青少组 + 全国青少年信息素养大赛 + 电子学会图形化考级|校园推箱子大挑战解析
c++·python·算法·bfs·信息学竞赛
2601_966949652 小时前
Python 实战:如何统计五档盘口买卖盘总挂单量?附计算公式与代码
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
全栈陈序员2 小时前
【Python】基础语法入门(二十九)—— 正则表达式实战:文本处理利器
开发语言·人工智能·python·正则表达式
得物技术3 小时前
Jev 实战:为AI工作流引入轻量决策层 x10倍提速|得物技术
python·llm·测试
reasonsummer3 小时前
【教学类-07-12】20261028大3班破译电话号码html(手机按钮版本)
python·html