1. test 1
  2. test 2
  3. test 3
  4. test 4
  5. test 5
  6. test 6
コース一覧
Python道場 商店街ポイントカードの10問
会員ランク判定

Python道場 商店街ポイントカードの10問

Python入門で身に付けた技を、商店街ポイントカード事務局の仕事で試す演習専用コースです。解説はありません。依頼と完成条件だけを読み、白紙から自分で組み立てます。手が止まったときのために、方針・使う構文・部分解の3段階のヒントを各問に用意しています。表示の整形から始まり、条件分岐、ループ、関数、辞書での集計、文字列の掃除、ファイル保存を経て、最後は全機能を束ねた台帳アプリまで、10問で Python の主要な道具を一巡します。1問15分から45分、全10問で約5時間です。Python入門を終えて「読めるけれど自分では書けない」と感じている方に向いています。

1
初段
01. 会員証を表示せよ15分
02. ポイント付与計算15分
03. 会員ランク判定20分
04. ポイントBuzz20分
2
中段
01. 全会員の合計と平均25分
02. 処理を関数に分けよ25分
03. ランク別に集計せよ30分
04. 乱れた台帳を掃除せよ30分
3
師範
01. 台帳を保存・復元せよ35分
02. 総合 ポイント管理台帳45分

会員ランク判定

初段 / 目安 20分

松田さんが景品カタログを広げています。「ポイントでランクを分けたいんだ。1000以上でゴールド、500以上でシルバー、それ未満はブロンズ。うちはこの3つでいく」。

気をつけるところが1つあります。ちょうど1000ポイントの人はゴールドです。ちょうど500ポイントの人はシルバーです。「以上」は、その数を含みます。

完成条件

保有ポイントを受け取ってランク名を返す関数 get_rank(points) を作ってください。

  • 1000以上なら "ゴールド"
  • 500以上1000未満なら "シルバー"
  • 500未満なら "ブロンズ"
  • 返すのは文字列。return で返すこと

進め方

白紙から書いてください。手が止まったらヒントを開けます。ヒントは3段階で、①方針、②使う構文、③部分解の順に出ます。1つも開けずに通せたら、その問題は自分のものです。

開かずに10分粘って進まないなら、①だけ開けてください。粘る時間そのものには価値がありません。価値があるのは、自分で書いた行が動いた瞬間です。

上から順に判定していくと、条件はそれぞれ短く書けます。逆に小さいほうから判定すると、条件が重なって面倒になります。

要件

  1. 関数名は get_rank、引数は points の1つ
  2. 1000以上なら「ゴールド」を返すこと
  3. 500以上1000未満なら「シルバー」を返すこと
  4. 500未満なら「ブロンズ」を返すこと
  5. print ではなく return で文字列を返すこと

入出力例

get_rank(1500) → "ゴールド" get_rank(1000) → "ゴールド" get_rank(999) → "シルバー" get_rank(500) → "シルバー" get_rank(499) → "ブロンズ" get_rank(0) → "ブロンズ"

ヒント

前のヒントを開くと次が開きます。開かずに解けると未開封クリアです

①方針 大きいほうから順に判定します。ゴールドで外れた時点で1000未満が確定するので、次の条件は500以上だけ見れば足ります

ヒント 2ヒント 1 を開くと読めます
ヒント 3ヒント 2 を開くと読めます
生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/08/09

関連レッスン

  • ポイントBuzz

    1から30までを読み上げ、3の倍数・5の倍数・その両方で文言を変えます。判定の順序が要です。

  • 全会員の合計と平均

    ポイントのリストを走査して合計と平均を出します。平均は小数1桁に整えます。

  • 台帳を保存・復元せよ

    会員データをファイルに書き出し、読み直して元の形に戻します。往復して初めて正解です。

main.py
学習モード
エディタを読み込んでいます

メモ

会員ランク判定

⌘S で保存