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 を中心に、プログラミング教育に情熱を注いでいます。初心者が楽しく学べる環境作りを目指しています。
著者の詳細を見る →