【初心者向け】Pythonの関数(def)の使い方 — 作り方・引数・戻り値をやさしく解説

公開日: 2025-10-31|更新日: 2025-10-31

関数はプログラムを整理し、再利用性を高める重要な仕組みです。この記事では、
def を使った関数定義の基本から、
引数・戻り値・デフォルト引数・スコープまで、初心者向けにやさしく解説します。
コピペで動くサンプルと練習問題付き。

1. 関数とは?

関数は「名前付きの処理ブロック」です。何度も使う処理をまとめておくことで、コードが読みやすく、保守しやすくなります。

例:同じ計算を何度も書かずに、関数名を呼び出すだけで処理できる。

2. 関数の定義(基本)

関数は def 関数名(引数): の形で定義します。定義後、関数名() で呼び出します。

# 基本形
def hello():
    print("Hello, Python!")

hello()  # 呼び出し

出力:

Hello, Python!

3. 引数(位置引数・キーワード引数)

関数に値を渡す方法には位置引数とキーワード引数があります。

位置引数

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

add(2, 3)  # 5

キーワード引数

def greet(name, message):
    print(f"{name}さん、{message}")

greet(name="太郎", message="こんにちは")

4. デフォルト引数と可変長引数

デフォルト引数

def greet(name="ゲスト"):
    print(f"ようこそ、{name}さん!")

greet()         # デフォルトを使う
greet("花子")   # 引数を渡す

可変長引数(*args, **kwargs)

def func(*args, **kwargs):
    print("args:", args)
    print("kwargs:", kwargs)

func(1, 2, a=3, b=4)

出力:

args: (1, 2)
kwargs: {'a': 3, 'b': 4}

5. 戻り値(return)の使い方

関数は結果を返すことができます。return で値を返し、呼び出し側で受け取ります。

def square(x):
    return x * x

result = square(5)
print(result)  # 25

注意:return がない関数は None を返します。

6. 変数のスコープ(localとglobal)

関数内で定義した変数は基本的にローカル(その関数の中だけで有効)です。外側の変数を変更したい場合は注意が必要です。

x = 10

def foo():
    x = 5  # これはローカル変数
    print("inside:", x)

foo()
print("outside:", x)

出力:

inside: 5
outside: 10

どうしてもグローバル変数を関数内で変更したい場合は global を使いますが、可読性が下がるので注意。

7. lambda(無名関数)とは

短い関数をその場で作るときに使います。通常は def を使う方が分かりやすいですが、簡単な処理のときに便利です。

# lambda の例
square = lambda x: x * x
print(square(4))  # 16

# map と組み合わせる例
nums = [1, 2, 3]
squared = list(map(lambda x: x*x, nums))
print(squared)  # [1, 4, 9]

8. 練習問題(解答付き)

問題1

引数で受け取った数値のリストの合計を返す関数 sum_list を作ってください。

解答(クリックで表示)
def sum_list(nums):
    total = 0
    for n in nums:
        total += n
    return total

print(sum_list([1,2,3,4]))  # 10

問題2

2つの引数(名前と年齢)を受け取り、挨拶文を返す関数を作ってください(年齢はデフォルトで0にする)。

解答(クリックで表示)
def greet(name, age=0):
    return f"{name}さんは{age}歳です"

print(greet("太郎", 30))  # 太郎さんは30歳です
print(greet("花子"))      # 花子さんは0歳です

9. まとめと次に読む記事

ポイントまとめ:

  • def で関数を定義する
  • 引数は位置引数・キーワード引数・デフォルト引数・可変長引数がある
  • return で結果を返す
  • スコープに注意(ローカルとグローバル)

関連記事:

気に入ったらシェア・コメントお願いします!さらに練習問題や「デコレータ」「クロージャー」などの発展トピックも解説できます。依頼があれば記事化します。

(この記事は初心者向けに簡潔化しています。実務的な設計や型ヒント、テストの話は別記事で解説予定です。)