单元四

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

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

一、任务目标

理解列表可按分数排序后展示,能做出简易排行榜:高分在前。

二、我们要学什么

  • 学习要点:排行榜|列表排序与展示
  • 本课过关:能完成:说出排序改变的是显示顺序;载入体验程序,指出分数高的排在前面;插入一个新分数后,名次跟着变。
  • 示例对齐:体验题对应本课「编程体验」;完整代码对应编程题1;补全与独立编写对应编程题2–3。均在 Mixly 图形化积木中完成。

三、本节要点

本课要认识排序展示。重难点是先收集分数,再统一排序,不要边加边乱序打印。要点对齐「排行榜|列表排序与展示」。

1读场景明确真实任务
2对要点排行榜|列表排序与展示
3载入运行图形化积木

四、解题思路

任务:把若干分数排序后打印排行榜。请分清输入(分数列表)与输出(有序名单)。

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

  1. 1明确任务「高分在前」:打印顺序应与分数高低一致。
  2. 2收集分数后排序,再依次打印。
  3. 3加入一个新分数后重排,观察名次是否变化。

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

任务:高分在前收集分数后排序,再依次打印加入一个新分数后重排

五、图形块讲解

本课用到的 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. 判断:本课必须手写处理所有并列名次、平分时的学号规则,否则不能打印。

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

  4. 排行榜每条用姓名和分数一对值,好处是?

  5. 打印时用 k + 1 作为名次,是因为?

九、本节小结

本课主题是排行榜:列表保存分数,排序后展示。高分在前。