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分

ポイント付与計算

初段 / 目安 15分

会員証ができた翌日、松田さんがレジの伝票を握って現れました。「お会計の金額を入れたら、付くポイントが出てほしいんだ。100円で1ポイント。うちの商店街はずっとこの決まりでね」。

ただし端数の扱いは決めてあります。980円のお会計で10ポイント付けてしまうと、80円分をただで配ることになります。足りない分は切り捨てです。

完成条件

会計金額を受け取ってポイント数を返す関数 calc_points(amount) を作ってください。

  • 100円ごとに1ポイント
  • 100円に満たない端数は切り捨て
  • 返すのは整数。980 なら 9、100 なら 1、99 なら 0
  • 画面に表示するのではなく、return で返すこと

進め方

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

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

Python の割り算には2種類あります。/ で割ると 9.8 のような小数が返ります。ポイントは小数では配れません。

要件

  1. 関数名は calc_points、引数は amount の1つ
  2. 100円ごとに1ポイントとして計算すること
  3. 100円に満たない端数は切り捨てること
  4. print ではなく return で整数を返すこと

入出力例

calc_points(1000) → 10 calc_points(980) → 9 calc_points(99) → 0 calc_points(100) → 1 calc_points(12345) → 123 calc_points(0) → 0

ヒント

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

①方針 金額を100で割るだけです。ただし返す値は整数でなければいけません

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

関連レッスン

  • 会員ランク判定

    保有ポイントを3つのランクに分けます。境界のちょうどの値でつまずかないようにします。

  • ポイントBuzz

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

  • 全会員の合計と平均

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

  • 台帳を保存・復元せよ

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

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

メモ

ポイント付与計算

⌘S で保存