注目キーワード
  1. Python
  2. コンペ

Pythonの関数の作り方・書き方を初心者向けに解説|def・引数・戻り値

  • 2026年7月2日
  • 2026年7月2日
  • Python
  • 2回
  • 0件

Pythonの関数とは

関数とは、ひとまとまりの処理に名前をつけて、何度でも呼び出せるようにしたものです。

同じ処理を何度も書く代わりに、関数として定義しておけばコードをすっきりまとめられます。プログラムが長くなるほど、関数の恩恵が大きくなります。

Pythonで関数を定義するには def キーワードを使います。

関数の基本的な書き方

defを使った定義の構造

def 関数名(引数):
    # 処理内容
    return 戻り値

最もシンプルな例として、挨拶メッセージを表示する関数を書いてみます。

def greet():
    print("こんにちは!")

greet()
こんにちは!

def greet(): で関数を定義し、greet() と書くことで呼び出しています。関数名のあとに () を付けるのが呼び出しの基本です。

引数の書き方

引数とは、関数を呼び出すときに渡す値のことです。関数内でその値を使って処理を変えられます。

引数が1つの場合

def greet(name):
    print(f"こんにちは、{name}さん!")

greet("田中")
こんにちは、田中さん!

name が引数です。呼び出し時に渡した "田中" が関数内の name に入ります。

引数が複数の場合

def add(a, b):
    result = a + b
    print(f"{a} + {b} = {result}")

add(3, 5)
3 + 5 = 8

カンマで区切ることで複数の引数を受け取れます。呼び出すときも同じ順番で値を渡します。

デフォルト引数

引数に初期値を設定しておくと、呼び出し時に値を省略できます。

def greet(name, message="こんにちは"):
    print(f"{message}、{name}さん!")

greet("田中")
greet("鈴木", "おはようございます")
こんにちは、田中さん!
おはようございます、鈴木さん!

デフォルト引数はそれ以外の引数より後に書く必要があります。逆にするとエラーになります。

キーワード引数

引数の名前を指定して値を渡す方法をキーワード引数と呼びます。順番を気にせず渡せます。

def introduce(name, age):
    print(f"名前:{name}、年齢:{age}")

introduce(age=30, name="田中")
名前:田中、年齢:30

戻り値(return)の使い方

処理した結果を呼び出し元に返すには return を使います。

def multiply(a, b):
    return a * b

result = multiply(4, 6)
print(result)
24

return で返された値は変数に代入できます。print() で表示するだけの関数と違い、戻り値があると計算結果を次の処理に使い回せます。

return を書かない場合はNoneになる

return を書かなかった場合、関数はデフォルトで None を返します。

def greet(name):
    print(f"こんにちは、{name}さん!")

result = greet("田中")
print(result)
こんにちは、田中さん!
None

戻り値を使って処理をつなげたい場合は return を忘れずに書きましょう。

よくある使い方

計算処理をまとめる

同じ計算を何度も行う場合、関数にまとめると管理しやすくなります。

def tax_included(price, rate=0.1):
    return price * (1 + rate)

print(tax_included(1000))
print(tax_included(2000))
print(tax_included(5000, 0.08))
1100.0
2200.0
5400.0

rate にデフォルト値を設定しているので、消費税率が変わる場合だけ別途指定できます。

リストに対して処理をまとめる

def get_evens(numbers):
    result = []
    for n in numbers:
        if n % 2 == 0:
            result.append(n)
    return result

nums = [1, 2, 3, 4, 5, 6]
print(get_evens(nums))
[2, 4, 6]

リストをそのまま引数に渡せます。処理内容を関数に切り出すことで、コードの見通しがよくなります。

よくあるミスと注意点

インデントのずれ

Pythonの関数内の処理はインデントで区別します。インデントがずれるとエラーになります。

def greet(name):
print(f"こんにちは、{name}さん!")  # インデントなし
IndentationError: expected an indented block

def の直後の行は必ず半角スペース4つ(またはタブ1つ)分インデントします。

引数の数が違う

def add(a, b):
    return a + b

add(1)  # 引数が1つしかない
TypeError: add() missing 1 required positional argument: 'b'

定義した引数の数と、呼び出し時に渡す数が一致していないとエラーになります。デフォルト引数を設定しない限り、すべての引数が必要です。

returnの書き忘れ

計算した結果を変数に受け取りたいのに return を書き忘れると、None が入ります。

def add(a, b):
    result = a + b  # returnを書き忘れ

total = add(3, 4)
print(total)
None

戻り値を使う予定がある関数には必ず return を書きましょう。

変数のスコープに注意

関数の中で定義した変数は、関数の外からは参照できません。

def calc():
    x = 10

calc()
print(x)  # 関数の外からxを参照しようとしている
NameError: name 'x' is not defined

処理結果を外に持ち出したい場合は return を使います。

AI時代での補足

AIにコードを書かせる場面が増えても、関数の定義・引数・戻り値の構造を理解していると、出力されたコードが意図どおりに動くか確認しやすくなります。AIの出力を読んで直す力は、基礎知識があるほど上がります。

まとめ

この記事で解説した内容を整理します。

  • 関数は def キーワードで定義する
  • 引数を使うと、呼び出し時に値を渡して処理を変えられる
  • return で処理結果を呼び出し元に返す
  • return がない関数は None を返す
  • インデントや引数の数のミスが初心者のつまずきポイント

通常の def 関数に対して、短い処理を1行で書く方法として lambda(ラムダ)があります。lambdaの書き方や使いどころについては以下の記事で解説しています。

Pythonのlambda(ラムダ)とは?基本の書き方・引数・複数行の扱いをわかりやすく解説

また、どこまで体系的に学ぶかを考え始めたタイミングでは、以下の記事が判断の参考になります。

AIが普及した時代にプログラミングスクールは必要か?【判断基準を解説】

最新情報をチェックしよう!