Pythonで合計を計算する方法を日常例から理解しよう

python icon
Python

こんにちは、とまだです。

今回は Pythonで数値の合計を求める方法について解説します。

合計計算とは?

合計計算は、複数の数値を足し合わせることです。

レシートの金額を全部足したり、家計簿で1ヶ月の支出を計算したり。

日常生活でもよく使いますよね。

プログラミングでも同じように、売上データの集計やアクセス数の合算など、いろんな場面で登場します。

なぜPythonで合計を計算するのか

電卓でも計算はできます。

でも、データが100個、1000個となったらどうでしょう?

手で打ち込むのは大変ですよね。

さらに、毎日同じ計算をする必要があったら?

Pythonなら、こういった面倒な作業を一瞬で終わらせることができます。

基本の足し算から始めよう

シンプルな数値の合計

まずは2つの数を足してみましょう。

# りんごとみかんの値段
apple = 100
orange = 80

# 合計金額を計算
total = apple + orange
print(total)  # 180

これは電卓で「100 + 80」と打つのと同じです。

変数に名前を付けることで、何を計算しているか分かりやすくなります。

3つ以上の数値を足す

商品が増えても大丈夫です。

# 果物の値段
apple = 100
orange = 80
banana = 60

# 全部足す
total = apple + orange + banana
print(total)  # 240

ただし、商品が10個、20個と増えると、この方法は大変になってきます。

そこで、もっと便利な方法を見ていきましょう。

リストを使った効率的な合計計算

商品をまとめて管理する

買い物リストのように、複数の値段をまとめて扱いたいときはリストを使います。

# 商品の値段をリストにまとめる
prices = [100, 80, 60, 120, 90]

これは、レシートに書かれた金額を上から順番に並べたようなものです。

for文で1つずつ足していく方法

リストの中身を1つずつ取り出して足していく方法です。

# 買い物リスト
prices = [100, 80, 60, 120, 90]

# 合計を入れる箱を用意
total = 0

# 1つずつ足していく
for price in prices:
    total = total + price

print(total)  # 450

これは、レシートを上から順番に見ながら電卓で足していくのと同じイメージです。

でも、もっと簡単な方法があります。

sum()関数で一発計算

Pythonには合計を計算する専用の機能があります。

# 買い物リスト
prices = [100, 80, 60, 120, 90]

# sum()で一発計算
total = sum(prices)
print(total)  # 450

たった1行で合計が出せました。

これが、Pythonの便利なところです。

いろんなデータの合計を求める

辞書で管理された在庫数

お店の在庫管理を想像してみてください。

商品名と在庫数がセットになっているデータです。

# 在庫管理表
inventory = {
    "りんご": 10,
    "みかん": 15,
    "バナナ": 8
}

# 在庫の合計を計算
total_items = sum(inventory.values())
print(f"全商品の在庫数: {total_items}個")  # 33個

inventory.values()で在庫数だけを取り出しています。

これで全商品の在庫数が分かります。

タプルでの合計計算

テストの点数のように、変更されないデータはタプルで管理することもあります。

# テストの点数(変更不可)
test_scores = (85, 90, 78, 92)

# 合計点を計算
total_score = sum(test_scores)
print(f"合計点: {total_score}点")  # 345点

リストと同じようにsum()が使えます。

実践的な活用例

月々の支出を計算する

家計簿アプリを作るイメージです。

# 1月の支出データ
january_expenses = {
    "食費": 30000,
    "光熱費": 15000,
    "交通費": 10000,
    "通信費": 8000,
    "その他": 20000
}

# 支出の合計を計算
total_expense = sum(january_expenses.values())
print(f"1月の支出合計: {total_expense}円")  # 83000円

# 予算との比較
budget = 100000
remaining = budget - total_expense
print(f"残り予算: {remaining}円")  # 17000円

このように、合計を使って予算管理もできます。

文字列から数値に変換して計算

ユーザーが入力した値を計算する場合です。

# ユーザーが入力した値(文字列として受け取る)
price1_str = "1500"
price2_str = "2300"

# 数値に変換してから計算
price1 = int(price1_str)
price2 = int(price2_str)

total = price1 + price2
print(f"合計: {total}円")  # 3800円

入力値は文字列で受け取ることが多いので、int()で数値に変換します。

大量データを扱うときの工夫

NumPyで高速計算

データが数万、数十万となったら、NumPyが便利です。

import numpy as np

# 大量の売上データ(例)
sales_data = np.array([1000, 1500, 1200, 1800, 2000])

# 高速で合計を計算
total_sales = np.sum(sales_data)
print(f"売上合計: {total_sales}円")  # 7500円

NumPyは数値計算に特化しているので、大量データでも高速に処理できます。

pandasで表データを扱う

Excelのような表データを扱うときは、pandasが活躍します。

import pandas as pd

# 店舗別の売上データ
data = {
    "店舗A": [10000, 15000, 12000],
    "店舗B": [8000, 11000, 9000],
    "店舗C": [12000, 13000, 14000]
}

# DataFrameに変換
df = pd.DataFrame(data, index=["1月", "2月", "3月"])

# 店舗Aの売上合計
store_a_total = df["店舗A"].sum()
print(f"店舗Aの3ヶ月合計: {store_a_total}円")  # 37000円

# 全店舗の月別合計
monthly_total = df.sum(axis=1)
print("月別の全店舗合計:")
print(monthly_total)

表形式のデータを扱うなら、pandasが圧倒的に便利です。

よくある質問

以下のような質問をよく受けます。

  • sum()とfor文、どちらを使うべき?
  • 小数の合計はどうする?
  • 空のリストの合計は?

sum()とfor文の使い分け

基本的にはsum()を使いましょう。

短くて読みやすいコードになります。

ただし、合計しながら別の処理もしたい場合はfor文が便利です。

小数の合計

小数も同じように扱えます。

# 消費税込みの価格
prices_with_tax = [108.5, 216.8, 324.3]
total = sum(prices_with_tax)
print(f"合計: {total}円")  # 649.6円

空のリストの合計

空のリストの合計は0になります。

empty_list = []
total = sum(empty_list)
print(total)  # 0

エラーにならないので安心して使えます。

まとめ

Pythonでの合計計算は、日常の計算をプログラムで自動化することです。

基本の+演算子から始めて、sum()関数でリストをまとめて計算。

さらにNumPyやpandasを使えば、大規模なデータも扱えます。

まずは身近な例から始めて、徐々に複雑な計算に挑戦してみてください。

きっと、面倒な計算作業から解放される日が来るはずです。

共有:

著者について

とまだ

とまだ

フルスタックエンジニア

Learning Next の創設者。Ruby on Rails と React を中心に、プログラミング教育に情熱を注いでいます。初心者が楽しく学べる環境作りを目指しています。

著者の詳細を見る →