🟩 Python学習記録 #22|計算結果を dict にまとめて関数から返す

Code

はじめに

今回は、
複数の計算結果を dict にまとめて返す関数 を学習しました。

これまで、

  • len()
  • sum()
  • 平均値の計算
  • 条件分岐(OK / WARN / ERROR)

を個別に使ってきましたが、
それらを 1つの関数にまとめる ことで、

  • 処理が整理される
  • 表示が読みやすくなる
  • 実務っぽいコードになる

という気づきがありました。


今回のテーマ

計算結果を dict にまとめて返す

  • 件数(count)
  • 合計(sum)
  • 平均(avg)
  • 判定結果(level)

1つの戻り値 として扱います。


使用したデータ

numbers = [35, 7, 26, 59, 55, 73, 90, 24, 13, 28,
           20, 71, 8, 89, 81, 97, 39, 66, 42, 57]

関数の実装

def calc_stats(numbers):
    count = len(numbers)
    total = sum(numbers)
    avg = int(total / count)

    if avg >= 70:
        level = 'OK'
    elif avg >= 50:
        level = 'WARN'
    else:
        level = 'ERROR'

    result = {
        'count': count,
        'sum': total,
        'avg': avg,
        'level': level
    }
    return result

ポイント

  • 計算処理は関数内に集約
  • result という dict に結果を整理
  • return result でまとめて返す

関数の呼び出しと表示

stats = calc_stats(numbers)

print(f"[{stats['level']}] count={stats['count']} sum={stats['sum']} avg={stats['avg']}")

実行結果

[WARN] count=20 sum=980 avg=49

今回の学び

  • 'count': count
    👉 key と変数を結びつけて保存している
  • dict で返すと
    👉 複数の値を一括で扱える
  • 処理と表示を分けると
    👉 コードが一気に読みやすくなる

なぜ dict にまとめるのか?

もし個別に返そうとすると、

return count, total, avg, level

となり、
どれが何の値か分かりにくくなります。

dict にすると、

stats['avg']
stats['level']

意味を持った形で扱える のが大きなメリットです。


今日のまとめ

  • 計算処理は関数にまとめる
  • 結果は dict で整理する
  • 表示は関数の外で行う

「動くコード」から
「読みやすいコード」へ一歩進めた学習 になりました。


次のステップ候補

  • 空のリストが来た場合の対策(例外処理)
  • 判定条件を引数で調整できるようにする
  • ログ出力用の関数に発展させる

コメント

タイトルとURLをコピーしました