1. 3件の金額を合計する
  2. 1件だけでも合計できる
  3. 5件の金額を合計する
  4. 空のリストは 0 を返す
  5. 0円が混ざっていても正しく足せる
コース一覧
Python入門:基礎文法編
forで合計

Python入門:基礎文法編

変数、条件分岐、ループ、関数、リスト・辞書、ファイル操作など Python の基礎文法を、ブラウザ上で毎レッスン実際にコードを書き、自分だけの「おこづかい帳アプリ」を育てながら学べる無料コースです。プログラミング完全未経験から始められ、環境構築や事前知識は一切不要です。約 18 時間 (1 日 30 分 × 37 日) で 74 レッスンを修了でき、修了後は入力・集計・ファイル保存まで備えたスクリプトを1から書けるようになります。

1
はじめての Python
01. printで表示15分
02. 文字列の連結15分
03. 四則演算15分
04. 実行順序15分
05. コメント15分
06. エラーを読んでみる15分
07. つくる:レシート表示15分
08. 第1章クイズ10分
2
変数とデータ型
01. 変数15分
02. typeで型を調べる15分
03. 数値への変換15分
04. 文字列への変換15分
05. boolとNone15分
06. f-string15分
07. 入力を受け取る15分
08. つくる:入力できるおこづかい帳15分
09. 第2章クイズ10分
3
演算子と式
01. 比較演算子15分
02. 論理演算子15分
03. in演算子15分
04. 剰余と切り捨て除算15分
05. 連鎖比較と優先順位15分
06. 三項演算子15分
07. つくる:予算チェック15分
08. 第3章クイズ10分
4
条件分岐
01. if文の基本15分
02. if / elif / else15分
03. 条件の組み合わせ15分
04. match文15分
05. 定番:FizzBuzz判定15分
06. デフォルト値とor15分
07. つくる:カテゴリ自動判定15分
08. 第4章クイズ10分
5
ループ
01. forで合計15分
02. whileで繰り返す15分
03. rangeとstep15分
04. breakとcontinue15分
05. enumerateで番号付け15分
06. zipで組み合わせ15分
07. 入れ子ループ15分
08. つくる:何件でも記録15分
09. 第5章クイズ10分
6
関数
01. 関数を定義する15分
02. 引数と戻り値15分
03. デフォルト引数15分
04. キーワード引数15分
05. 複数の戻り値15分
06. divmod15分
07. 変数のスコープ15分
08. lambda関数15分
09. つくる:関数に分割15分
10. 第6章クイズ10分
7
リストと辞書
01. リストの追加と削除15分
02. スライス15分
03. 辞書の基本15分
04. 辞書を走査15分
05. keyでソート15分
06. setで重複除去15分
07. リスト内包表記15分
08. タプルアンパック15分
09. つくる:カテゴリ別集計15分
10. 第7章クイズ10分
8
ファイルとエラー処理
01. ファイルを読み込む15分
02. ファイルに書き込む15分
03. withで安全に扱う15分
04. CSV形式で保存15分
05. try-exceptで備える15分
06. 例外の種類15分
07. つくる:保存機能15分
08. 第8章クイズ10分
9
総合制作
01. 全機能を統合しよう15分
02. 月間レポート機能15分
03. 自由拡張15分
04. 完成と次のステップ10分

forで合計

for で合計を積み上げる

3 件なら書ける、30 件は書けない

第 4 章までは、りんご 120 円とみかん 80 円のように、金額を 1 つずつ手で書いて足していました。3 件なら書けますが、30 件になると手に負えません。件数が増えても同じコードで動くようにする道具が ループ です。

Python でいちばんよく使うのが for です。並んでいるものを先頭から 1 つずつ取り出し、同じ処理を繰り返します。

Python

prices = [120, 80, 300] for price in prices: print(price)

for のうしろに 取り出した 1 件を入れる名前 を、in のうしろに 取り出す元 を書きます。行末はコロンで閉じ、繰り返したい処理をその下にインデントして書きます。インデントの決まりは if とまったく同じです。

price には 1 周目に 120、2 周目に 80、3 周目に 300 が入ります。1 周ごとに中身が入れ替わる箱だと考えると分かりやすいです。

prices のように値を並べて 1 つにまとめたものを リスト と呼びます。角かっこの中に、値をカンマで区切って並べたものです。この章では、渡されたリストを for で回す使い方だけを覚えます。

入れ物はループの外に置く

1 周ごとに結果をためたいときは、for に入る 前 に入れ物を用意しておくのが定石です。

Python

names = ["りんご", "みかん", "パン"] line = "" for name in names: line = line + name + " " print(line)

line = "" が入れ物の用意、line = line + name + " " が「今までの中身に 1 件分を足して入れ直す」処理です。この 2 行の組み合わせは、これから何度も出てきます。数を足し上げるときも、入れ物を 0 にしておく以外は同じ形です。

line = line + name は line += name とも書けます。+= は「右の値を足して入れ直す」という短縮形で、意味はまったく同じです。

解説

入れ物の用意を for の中に書いてしまうと、毎周ごとに空へ戻り、最後の 1 件しか残りません。入れ物はループの外、が鉄則です。

空のリストは 1 周も回らない

リストが空 [] のときは、取り出すものが最初から無いので、1 周もせずにループを抜けます。入れ物は用意したときの値のまま残ります。

つまり「空だったら」という場合分けを if で書かなくても、正しい答えが出ます。空のときに自然と正しくなる形 を選べているかは、書き終わったあとに必ず確かめる価値があります。

return の位置にも気をつけてください。ループの内側に置くと 1 周目で関数が終わり、最初の 1 件だけが返ります。return はループの外、for と同じ深さより手前です。

やってみよう

関数 total_price(prices) を実装してください。引数 prices は金額 (int) が並んだリストです。for ですべての要素を取り出して合計し、その合計を return します。

合計を入れる変数は、ループに入る前に 0 で用意します。リストが空のときは 0 を返しますが、そのための場合分けを書く必要はありません。書けたら total_price([120, 80, 300]) が 500 になるか、手元でも確かめてみてください。

要件

  1. 関数名は total_price で、引数はリスト prices の1つだけにする
  2. for でリストの要素を1つずつ取り出して合計する
  3. 合計を入れる変数はループに入る前に 0 で用意する
  4. 空のリストを渡されたときは 0 を返す

入出力例

total_price([120,80,300]) → 500 total_price([1000]) → 1000 total_price([120,80,300,50,250]) → 800 total_price([]) → 0 total_price([0,0,240]) → 240

ヒント

total = 0 をループの前に書き、ループの中で total = total + price とします

total += price と書いても同じ意味です

return はループの外に置きます。中に書くと1周目で終わってしまいます

空のリストは1周も回らないので、total は 0 のまま返ります

生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/08/05·更新 2026/08/26

関連レッスン

  • whileで繰り返す

    「終了」が来るまで while で取り込み続ける collect_until_end を作る

  • rangeとstep

    range の刻み幅を使って1週間分の日付見出しを並べる day_labels を作る

  • breakとcontinue

    0円は continue で飛ばし、-1 は break で打ち切る total_skip_zero を作る

  • enumerateで番号付け

    enumerate で品名リストに1から始まる通し番号を振る numbered_list を作る

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

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

  • ループ繰り返し処理。矢印で戻すか専用記号で示す
  • 処理計算や代入を表す長方形
  • インデントPythonはインデント(通常スペース4つ)でコードブロックを定義する。
  • リスト順序付きで複数の値を扱うデータ構造
  • 関数処理に名前を付けて再利用できる単位
  • 引数位置引数=順番で渡す。
  • 変数データに名前をつけて参照する仕組み
main.py
学習モード
エディタを読み込んでいます

メモ

forで合計

⌘S で保存