单元四

第16课 排行榜——列表排序与展示

任务场景:排行榜——按分数排出名次
任务场景:排行榜——按分数排出名次

一、任务目标

展示一张按分数排序的文字排行榜。

二、排行榜 = 排序 + 漂亮输出

常见做法:用「字典列表」保存每人成绩,再排序:

用两层循环比较分数,把高分换到前面(冒泡排序),再用下标打印名次。

名次可以用 「k + 1」:第 1 名、第 2 名……不必依赖 lambda / enumerate。

想一想:新玩家交卷后,只要 「追加到列表」 一条记录再 「sort」,榜单就更新了——仍是「更新 → 输出」。

三、解题思路

任务:展示一张按分数排序的文字排行榜。 先想清楚:输入是什么、处理后得到什么、屏幕上应出现什么。

本课主要用到:屏幕输出。

  1. 1明确任务「展示一张按分数排序的文字排行榜。」:运行后你希望看到什么结果(文字、图形或计算结果)。
  2. 2用「打印」积木把结果说出来,确认屏幕上出现预期内容。
  3. 3写出判断条件:什么情况下走 A,什么情况下走 B。
  4. 4用 while 保持程序持续运行或等待条件变化。
  5. 5对照参考积木(或代码)跑通后,只改一个参数,观察结果如何变化。

流程示意(可对照左侧文字)

任务:展示一张按分数…用「打印」积木把结果说出来,…写出判断条件:什么情况下走…用while保持程序持续运…对照参考积木(或代码)跑通后,只改一…

四、图形块功能讲解

本课用到的 Mixly 图形块均已在前面的课讲过。请直接对照编程练习搭积木;若有遗忘,回到该积木首次出现的课页复习。

五、知识点讲解

字典用「键 → 值」保存对应关系,如商品名对应价格。用键查找,比两个平行列表更不容易对错行;先确认键是否存在再取值。

先弄清本课输入与输出,再进编程练习对照现象。

六、编程练习

用下拉列表切换题目;下方 Mixly 默认显示图形化积木。请在 Mixly 工具栏点「运行」;「检查」读取 Mixly 代码判题。

先阅读并运行,感受游戏循环。

参考代码(对照抄写到下方 Mixly)
board = [
    {"name": "小飞", "score": 120},
    {"name": "阿狸", "score": 95},
    {"name": "勇者", "score": 150},
]
i = 0
while i < len(board):
    j = 0
    while j < len(board) - 1:
        if board[j]["score"] < board[j + 1]["score"]:
            tmp = board[j]
            board[j] = board[j + 1]
            board[j + 1] = tmp
        j = j + 1
    i = i + 1
print("=== 排行榜 ===")
k = 0
while k < len(board):
    row = board[k]
    print(k + 1, row["name"], row["score"], "分")
    k = k + 1

七、课堂练习

选出你认为正确的一项,再点「检查」。

  1. 把分数从高到低排好,通常是为了?

  2. 排行榜每条用 {"name", "score"},好处是?

  3. 打印排行榜时用 k + 1,是为了?

八、本节小结

排序让分数变成名次榜。下一单元:把游戏拆成函数、角色卡片 class、调试与毕业作品。