Easier to read with cream paper, a tint, more contrast or larger text? Choose your colours and text, once, for every page.

プレビュー

作品づくり

これはレッスンの最初のページです。読んで、アクティビティを試してみましょう。続きは授業の全体にあります。

45分

部活のゲーム大会の得点表

部活で、ゲーム大会をします。部員の名前と点数が出ます。平均は何点か、一位は誰か、順位はどうか。

手で計算すると、時間がかかり、間違えます。でも、この章で学んだことを合わせれば、プログラムが数秒でやってくれます。

今日のキーワード

ことばいみれい
作品自分で考えて作った、小さなプログラムです。得点表
分ける大きな問題を、小さな関数に分けて、順に作ることです。平均、一位、順位
テスト関数が、正しく動くかを、決めた入力で確かめることです。「テストを実行」
組み合わせる作った関数を、別の関数の中で使うことです。report_text が ranking を使う
辞書のデータ名前を、キーにして、点数を値にして入れたデータです。{"さくら": 90}

学生が入力するセルは、このプレビューでは空白です。

やってみよう: データを見る

コード: python
records = {"さくら": 90, "ゆうた": 70, "まい": 80}

total = 0
for name in records:
    print(name, records[name], "点")
    total = total + records[name]

print("平均は", total / len(records), "点")

# 自分の部活の人を、入れてみましょう。

小さな確認: どの章の技か

やってみよう

小さな確認: どの章の技か

4問
挑戦してみましょう。回答はここで採点され、その後は保存されません。点数を残したい場合や、続きから再開したい場合はログインしてください。ログインして点数を保存

答えはここで採点され、保存されません。アカウントがあれば、結果が残ります。

作り方の順番

一度に全部を作ろうとすると、迷います。やさしい関数から、一つずつ作ります。

平均、一位、基準以上は、for と if で書けます。順位は、並べかえの考え方を使います。最後に、文章にまとめます。

やってみよう: 順位を出す

コード: python
records = {"ゆうた": 70, "さくら": 90, "まい": 80}
names = []
for name in records:
    names.append(name)

# 点数が高い人から、前に置きます。
for i in range(len(names)):
    best = i
    for j in range(i + 1, len(names)):
        if records[names[j]] > records[names[best]]:
            best = j
    temp = names[i]
    names[i] = names[best]
    names[best] = temp

for i in range(len(names)):
    print(i + 1, "位", names[i], records[names[i]], "点")

例: 得点表の答え

順位名前点数80点以上
1位さくら90はい
2位まい80はい
3位ゆうた70いいえ

学生が入力するセルは、このプレビューでは空白です。

同点のとき

ヒント

同じ点数の人が二人いるとき、どちらを先にするかは、決めていません。ただし、一位の名前は、辞書で先に出る人にします。決まりを決めておくと、テストが書けます。

レッスンはまだ続きます

このレッスンの残り5つの部分は、練習問題や最後の確認とともに、授業の全体にあります。アカウントがあれば、すべて使えます。