1. test 1
コース一覧
Python道場 商店街ポイントカードの10問
ポイントBuzz

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分

ポイントBuzz

初段 / 目安 20分

事務局の壁に一枚の紙が貼ってありました。カメ師範からの挑戦状です。「会員番号1から30までを読み上げよ。ただし3の倍数のときは『ポイント3倍』、5の倍数のときは『クーポン進呈』、その両方に当たる番号では『大当たり』と叫べ」。

松田さんが小声で言います。「なんだかよく分からんが、これができんと次に進ませてもらえんらしい」。

完成条件

1から30までを順に、1行ずつ出力してください。

  • 3の倍数のときは ポイント3倍
  • 5の倍数のときは クーポン進呈
  • 3の倍数でも5の倍数でもあるときは 大当たり
  • どれにも当たらないときは数字そのもの
  • 全部で30行

冒頭の6行は次のとおりです。

プレーンテキスト

1 2 ポイント3倍 4 クーポン進呈 ポイント3倍

進め方

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

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

15 は3の倍数でもあり、5の倍数でもあります。3の倍数の判定を先に書くと、15 のときにそこで確定してしまいます。判定を書く順番が結果を決めます。

要件

  1. 1から30までを順に、1行ずつ出力すること
  2. 3の倍数のときは「ポイント3倍」と出すこと
  3. 5の倍数のときは「クーポン進呈」と出すこと
  4. 3の倍数かつ5の倍数のときは「大当たり」と出すこと
  5. どれにも当たらないときは数字をそのまま出すこと

入出力例

出力: "1 2 ポイント3倍 4 クーポン進呈 ポイント3倍 7 8 ポイント3倍 クーポン進呈 11 ポイント3倍 13 14 大当たり 16 17 ポイント3倍 19 クーポン進呈 ポイント3倍 22 23 ポイント3倍 クーポン進呈 26 ポイント3倍 28 29 大当たり "

ヒント

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

①方針 1から30まで回すループを作り、その中で分岐します。倍数かどうかは、割った余りが0かで分かります

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

関連レッスン

  • 全会員の合計と平均

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

  • 台帳を保存・復元せよ

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

  • 会員ランク判定

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

  • ポイント付与計算

    会計金額から付与ポイントを求めます。切り捨ての割り算をどう書くかが分かれ目です。

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

メモ

ポイントBuzz

⌘S で保存