Chapter 4 / Integration
Lesson 4.2 関数 + リストの仕上げ
関数の中でリストを処理し、短いレポートを出力します。
このページは無料で閲覧できるサンプルです。実際に手を動かして写経し、進捗を保存して学習を進めるには、ログインしてから学習ページへお進みください。
このレッスンで学ぶこと
本レッスンは Python 入門前半の総仕上げです。これまで章ごとに分けて学んできた「関数 (Chapter 3)」「リストと for (Chapter 3)」「条件付き集計 (本章)」のすべてを 1 つの関数の中で使い、データを受け取って簡単なレポートを出力する小さなプログラムを完成させます。
ここまで到達すれば、「リストを受け取って、要約結果を画面に表示する」という典型的な小さなプログラムを自力で組み立てられます。これは業務プログラム、データ分析、ゲームのスコア表示など、実務でも頻出する処理の最小単位です。
写経 1
写経 1
リストの合計を返す関数を書きます。
def calc_total(values):
total = 0
for value in values:
total += value
return total
scores = [10, 20, 30]
print(calc_total(scores))60写経 2
写経 2
件数と平均を表示する関数で、これまでの内容をまとめます。
def describe_scores(scores):
total = 0
for score in scores:
total += score
average = total / len(scores)
print("count:", len(scores))
print("average:", average)
describe_scores([70, 80, 90])count: 3
average: 80.0発展問題 (概要のみ)
発展問題
numbers を受け取り、"total: ..." と "average: ..." をこの順で表示する show_summary 関数を書いてみましょう。
def show_summary(numbers):
発展問題の自動採点はログイン後の学習ページでのみ動作します。
「関数 = ブラックボックス」として使う
describe_scores([70, 80, 90]) と書けば、関数の中で何が起きているかを意識せず結果が得られる、というのが関数の本当のありがたみです。呼び出し側のコード (describe_scores(scores)) を読むだけで、何をしているかが日本語のように分かる。関数の名前を分かりやすくつけ、引数を素直に渡すこと自体が、コードを読みやすくする最重要テクニックです。複雑な処理を 1 つの関数の名前の中に隠せば隠すほど、上位のコードはシンプルになります。
print で表示するか、return で値を返すか
本レッスンの describe_scores や show_summary は print が目的の関数なので、return は不要です (暗黙的に None を返します)。一方、Chapter 3 の add 関数のように「計算結果を呼び出し元で使いたい」関数は return で値を返します。同じ「関数」というキーワードでも、「副作用 (画面に出す、ファイルに書く) が目的」か「値を返すのが目的」かで設計が変わります。1 つの関数に両方の役割を持たせると分かりづらくなるので、最初は分けて考えるのが安全です。
関数の中で複数のステップを書く
- ステップ 1 — 集計の準備: total = 0 などの初期化
- ステップ 2 — ループでデータを処理: for score in scores: total += score
- ステップ 3 — 派生値の計算: average = total / len(scores)
- ステップ 4 — 結果の表示: print("count:", len(scores)) / print("average:", average)
- この 4 ステップは、データ要約処理の定型パターン。リスト処理が出てきたら、まず頭の中でこの 4 段階に当てはめてみる
ここから先の学習
本レッスンを完了したら、Python 入門の最小セット (print、変数、計算、文字列、if、for、関数、リスト) は一通り揃ったことになります。次のステップとしては、辞書 (dict) で複数項目をまとめて扱う、ファイルから入力を読み込む、複数の関数を組み合わせて少し大きなプログラムを書く、といった応用に進むのが定番です。本サイトは入門に特化しているため、ここから先はオンライン教材や書籍、自分で作りたい小さなプロジェクトを通じて手を動かす段階に入ります。「習った構文をどう組み合わせるか」が学習の中心になる時期です。
手を動かして練習しましょう
ログインすると、お手本コードを 1 文字ずつ写経しながらブラウザ上で実行し、合否を確認しながら学習を進められます。進捗は自動で保存されます。