コース一覧
    Pythonループ・関数
    forで合計

    Pythonループ・関数

    ループと関数の基本を学び、繰り返し処理を分割して読みやすく書けるようにします。

    1
    ループ
    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分
    2
    関数
    01. 関数を定義する15分
    02. 引数と戻り値15分
    03. デフォルト引数15分
    04. キーワード引数15分
    05. 複数の戻り値15分
    06. divmod15分
    07. 変数のスコープ15分
    08. lambda関数15分
    09. つくる:関数に分割15分
    10. 第6章クイズ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 = 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 で保存