コース一覧
    Pythonループ・関数
    関数を定義する

    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分

    関数を定義する

    関数の定義

    同じ 3 行を、また書いている

    第 1 章から、演習ではずっと def で始まる形を書いてきました。あれが 関数 です。ここまでは決まりごととして受け入れてもらっていましたが、ここで正面から扱います。

    関数は、いくつかの処理をひとまとめにして名前を付けたものです。名前を付けておけば、あとから何度でもその名前で呼び出せます。同じ処理を 3 回書いたら、それは関数にする合図です。書く量が減るだけでなく、直す場所が 1 か所になります。

    Python

    def yen(price):
        return str(price) + "円"
    
    print(yen(120))
    print(yen(80))

    yen が関数名、price が 引数 です。引数は外から受け取る材料で、関数の中では普通の変数として使えます。return のうしろに書いた値が、この関数の答えになります。

    def のうしろに関数名、かっこ、半角コロンを書き、次の行から半角スペース 4 つ分下げて中身を書きます。関数名は小文字と _ でつなぐのが Python の慣習で、makeLine ではなく make_line と書きます。

    書いただけでは 1 度も動かない

    def の行を書いただけでは、中身は 1 度も実行されません。def は「この名前でこういう処理を用意する」という登録であって、実行の合図ではないからです。

    yen(120) と書いて初めて中身が動きます。この書き方を 呼び出し と言います。かっこを付け忘れて yen とだけ書くと、関数そのものを指すだけで実行されません。

    「関数を書いたのに何も起きない」の原因は、たいてい呼び出しを書き忘れていることです。定義と呼び出しは必ずセットです。

    print では採点に届かない

    return と print は、まったく別のことをします。

    Python

    def show(price):
        print(str(price) + "円")
    
    result = show(120)
    print(result)

    画面には 120円 と None が出ます。show は文字を表示しはしましたが、答えを返していません。return を書かない関数の戻り値は None です。

    このプラットフォームの採点は、関数が return した値を見ます。画面にどれだけ正しく表示されていても、return が無ければ不正解です。逆に print を 1 行も書かなくても、return さえ正しければ通ります。

    解説

    関数の入口で「変な値が来ていないか」を整えておくと、あとに続く処理が 1 本道になって読みやすくなります。引数はただの変数なので、中で別の値に置き換えても構いません。

    やってみよう

    関数 greet_user(name) を実装してください。引数 name を受け取り、name のうしろに "さん、おこづかい帳へようこそ" をつないだ文字列を return します。

    ただし name が空文字 "" のときは、name の代わりに "ゲスト" を使って ゲストさん、おこづかい帳へようこそ を返します。文字列の連結は + です。

    書けたら print(greet_user("たろう")) を手元で試して、定義と呼び出しがつながる感覚を確かめてみてください。

    要件

    1. 関数名は greet_user で、引数は name の 1 つ
    2. 戻り値は name + "さん、おこづかい帳へようこそ" の文字列
    3. name が空文字 "" のときは "ゲスト" を使う
    4. print ではなく return で返す

    ヒント

    def greet_user(name): の次の行を半角スペース 4 つで字下げします

    文字列の連結は + でできます

    空文字かどうかは if name == "": で判定できます

    name = "ゲスト" のように、引数の中身を書き換えてから連結すると 1 本道になります

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

    関連レッスン

    • 引数と戻り値

      引数で値を渡し、return で結果を受け取る。税込価格を返す add_tax を作る

    • デフォルト引数

      引数に既定値を持たせて呼び出しを短くする。予算 3000 円を既定値にした check_over を作る

    • キーワード引数

      引数を名前で指定して渡す。表示形式を切り替えられる format_record を作る

    • 複数の戻り値

      1 つの関数から 2 つの値をまとめて返す。合計と平均を返す total_and_average を作る

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

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

    • 関数処理に名前を付けて再利用できる単位
    • 処理計算や代入を表す長方形
    • 引数位置引数=順番で渡す。
    • 変数データに名前をつけて参照する仕組み
    • セット重複を持たない順序なし集合
    • 戻り値呼び出し元への返答を表す点線矢印
    • フォームinput(text, email, password, checkbox, radio)、select、textarea、button。
    main.py
    エディタを読み込んでいます

    メモ

    関数を定義する

    ⌘S で保存