Pythonのプログラムを書く上で、関数は非常に重要な概念です。関数を使うことで、コードを整理し、再利用しやすくすることができます。この記事では、Pythonの関数の定義方法や基本的な使い方を詳しく解説します。
1. 関数とは?
関数とは、特定の処理をまとめたブロックのことです。プログラムの中で何度も使う処理を関数として定義することで、コードの重複を避け、可読性を向上させることができます。
例えば、同じ計算を何度も書く代わりに、関数を定義しておけば、1行のコードで呼び出すことができます。
2. 関数の定義方法
Pythonで関数を定義するには、def キーワードを使います。
基本的な構文
def 関数名(引数1, 引数2, ...):
処理
return 戻り値
簡単な例
def greet(name):
"""指定された名前で挨拶をする関数"""
return f"こんにちは、{name}さん!"
# 関数の呼び出し
print(greet("太郎"))
実行結果
こんにちは、太郎さん!
解説
• def greet(name): → greet という関数を定義し、引数 name を受け取る。
• return f”こんにちは、{name}さん!” → 文字列を返す。
• print(greet(“太郎”)) → greet 関数を呼び出し、結果を表示する。
3. 引数と戻り値
関数には、引数(関数に渡す値)と 戻り値(関数が返す値)があります。
(1) 引数がある関数
def add(a, b):
return a + b
print(add(3, 5)) # 出力: 8
• a と b という 引数 を受け取り、足し算をして 戻り値 として返す。
(2) デフォルト値を持つ引数
引数にデフォルト値を設定すると、省略した場合に既定の値が使われます。
def greet(name="ゲスト"):
return f"こんにちは、{name}さん!"
print(greet()) # 出力: こんにちは、ゲストさん!
print(greet("花子")) # 出力: こんにちは、花子さん!
(3) 可変長引数 (*args)
引数の数が不定な場合、*args を使います。
def sum_numbers(*args):
return sum(args)
print(sum_numbers(1, 2, 3, 4, 5)) # 出力: 15
• *args を使うと、任意の個数の引数を受け取れる。
(4) キーワード引数 (**kwargs)
辞書形式で可変長の引数を受け取る場合は、**kwargs を使います。
def show_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
show_info(name="太郎", age=25, city="東京")
計算結果
name: 太郎
age: 25
city: 東京
4. 戻り値のない関数
関数によっては、戻り値を返さない(return を省略する)こともあります。
def show_message():
print("こんにちは!")
show_message() # こんにちは!
• return を使わない関数は、デフォルトで None を返す。
5. lambda(無名関数)
Pythonには、lambda を使って簡単に関数を定義できる無名関数があります。
# 通常の関数
def square(x):
return x * x
# lambdaを使った場合
square_lambda = lambda x: x * x
print(square(5)) # 出力: 25
print(square_lambda(5)) # 出力: 25
• lambda x: x * x は、x を受け取って x * x を返す関数。
6. 関数の応用
(1) 関数の中で関数を定義
関数の中に別の関数を定義することができます。
def outer_function():
def inner_function():
return "内側の関数"
return inner_function()
print(outer_function()) # 出力: 内側の関数
(2) 関数を引数として渡す
関数を別の関数の引数にすることもできます。
def apply_function(func, value):
return func(value)
def double(x):
return x * 2
print(apply_function(double, 10)) # 出力: 20
(3) 関数を返す関数
関数を返す関数も作成できます。
def multiplier(n):
def multiply(x):
return x * n
return multiply
times3 = multiplier(3)
print(times3(5)) # 出力: 15
• multiplier(3) は、x * 3 を計算する関数 multiply を返す。
7. まとめ
✅ 関数の基本
• def 関数名(引数): で関数を定義
• return で値を返す
✅ 引数の種類
• 通常の引数
• デフォルト引数 (= で設定)
• 可変長引数 (*args, **kwargs)
✅ 無名関数
• lambda を使うと簡単に関数を作成可能
✅ 関数の応用
• 関数の中に関数を定義
• 関数を引数に渡す
• 関数を返す関数
Pythonの関数をうまく活用して、シンプルで読みやすいコード を書いていきましょう!