1. test 1
  2. test 2
  3. test 3
  4. test 4
コース一覧
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分

全会員の合計と平均

中段 / 目安 25分

松田さんが台帳を抱えて事務局に戻ってきました。「今月の全会員のポイント、合計と平均を出してくれんかね。会長に報告があるんだ」。手元にあるのは、会員1人ぶんのポイントが順に並んだリストだけです。

合計はまだしも、平均は割り算です。会長に見せる紙に 3125.6666666666665 と並んでいたら、たぶん怒られます。小数第1位までに整えて渡してください。

完成条件

ポイントのリストを受け取り、報告用の1行を組み立てて返す関数 summarize_points(points) を作ってください。

  • 返す文字列の形は 合計 4300pt / 平均 1075.0pt です
  • 合計は整数のまま、平均は小数第1位までにします
  • 平均は四捨五入ではなく、書式指定にまかせてかまいません
  • リストが空のときは 対象者なし という文字列を返します

進め方

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

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

合計を出す道は2本あります。自分で足し上げる道と、既にある道具を呼ぶ道です。どちらでも通りますが、一度は自分で足し上げてみてください。中で何が起きているかが分かります。

空のリストを先に片づけてから本題に入ると、割り算で慌てずに済みます。

要件

  1. 関数名は summarize_points、引数はポイントのリスト1つとすること
  2. 返す文字列の形は「合計 4300pt / 平均 1075.0pt」であること
  3. 平均は小数第1位まで表示すること
  4. リストが空のときは「対象者なし」を返すこと

入出力例

summarize_points([1200,800,1500,800]) → "合計 4300pt / 平均 1075.0pt" summarize_points([100,200,400]) → "合計 700pt / 平均 233.3pt" summarize_points([980]) → "合計 980pt / 平均 980.0pt" summarize_points([]) → "対象者なし"

ヒント

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

①方針 先に空リストの場合を返してしまい、そのあとで合計を出し、人数で割って平均を求めます

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

関連レッスン

  • 処理を関数に分けよ

    付与計算とランク判定を、2つの関数という道具にまとめます。

  • ランク別に集計せよ

    会員のリストをランクごとに数え、辞書にまとめます。前の問題で作った関数を再利用します。

  • 乱れた台帳を掃除せよ

    空白や単位が混ざった文字列を数値に直します。直せないものは数えて報告します。

  • 台帳を保存・復元せよ

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

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • リスト順序付きで複数の値を扱うデータ構造
  • 関数処理に名前を付けて再利用できる単位
  • 引数位置引数=順番で渡す。
main.py
学習モード
エディタを読み込んでいます

メモ

全会員の合計と平均

⌘S で保存