📖 学员手册
代码讲解已合并到高亮预览的代码注释里
⚔ Python战士排位系统 · 学员手册
第七课 | 60 分钟 | Level 2 | +150 EXP
| 你将学会 | 你将完成 |
|---|---|
sorted() | 按战力排序排行榜 |
lambda | 告诉 sorted 按哪个字段排 |
max() / min() | 找最强战士和训练目标 |
sum() / len() | 计算平均战力 |
for + if | 批量计算和段位判断 |
turtle 图表 | 生成战力榜海报 |
一、产品目标
第六课我们做了 AI课程学习管家,系统已经能收集学习数据。第七课要把数据变成学生愿意看的东西:战力榜。
战力公式:
python
战力 = 冒险时长 * 3 + 实验室时长 * 5 + 进化舱时长 * 4 + 作品数 * 80这不是为了制造焦虑,而是让努力变得可见:多进实验室、多做作品,战力就会提升。
二、核心代码
python
ranked_warriors = sorted(warriors, key=lambda item: item['power'], reverse=True)
strongest = max(warriors, key=lambda item: item['power'])
training_target = min(warriors, key=lambda item: item['lab'])
average_power = sum(w['power'] for w in warriors) / len(warriors)记忆口诀:sorted 排队,lambda 指路,max/min 找极值,sum/len 算平均。
三、6 关挑战
- 战士数据卡:用 list + dict 保存每个学员数据。
- 战力公式:把学习行为换算成战力。
- 段位判断:用 if / elif / else 生成段位。
- 排行榜排序:用 sorted + lambda 从高到低排名。
- 班级战力报告:找最强、训练目标和平均战力。
- 战力榜海报:用 turtle 画出排行榜。
四、你可以怎样改
| 想改什么 | 改哪里 |
|---|---|
| 改学员姓名 | warriors 里的 name |
| 改冒险时长 | adventure |
| 改实验室时长 | lab |
| 改进化舱时长 | upgrade |
| 改作品数 | works |
| 改战力公式 | calc_power() |
| 改段位规则 | get_rank_title() |
五、课后作业
- 把 4 个示例学员改成真实同学或战队成员。
- 至少添加 1 名新战士。
- 调整战力公式,让实验室训练更重要。
- 运行第6关,截图战力榜海报。
- 打开网站
/ranking,观察真实线上战力榜。
Ctrl+/ 注释 · ▶ 运行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
点击 ▶ 运行或按 Ctrl+Enter
预览区(HTML / turtle 输出)
📋 任务卡
1战士数据卡
用 list + dict 保存每个学员的冒险、实验室、进化舱和作品数据。
💡运行后输入 1+10 XP
2战力公式
把学习行为换算成战力,让努力变成可见数字。
💡运行后输入 2+10 XP
3段位判断
用 if / elif / else 把战力变成青铜、白银、黄金、钻石。
💡运行后输入 3+10 XP
4排行榜排序
学习 sorted() 和 lambda,按战力从高到低排序。
💡运行后输入 4+10 XP
5班级战力报告
用 max()、min()、sum() 找最强战士、训练目标和平均战力。
💡运行后输入 5+10 XP
6战力榜海报
用 turtle 画出可展示的 Python Warrior Ranking 战力榜。
💡运行后输入 6+10 XP
🎁 完成全部 +30 XP
加载中
▶▼ 🧩 扩展
📦numpy
📦matplotlib
📦pillow
📦requests
📦sympy
📦pandas
📦scipy
📦beautifulsoup4
📦pygame
📦flask
📦opencv-python
📦nltk
📦sqlalchemy
📦plotly