プログラミングにおいて、特定の処理をひとまとめにして名前を付け、何度も再利用できるようにしたものを「関数」と呼びます。Pythonには print() や len() のような組み込み関数が多数用意されていますが、自分で独自の関数を作成(定義)することも可能です。
この記事では、def 文を使用した関数の定義方法、引数の渡し方、そして戻り値の受け取り方について解説します。
関数の定義と呼び出し
関数を定義するには、def キーワードを使用します。関数名、引数(入力を受け取る変数)、そして実行する処理ブロック(インデントして記述)を定義します。
基本構文:
def 関数名(引数1, 引数2):
# 実行したい処理
return 戻り値
具体的な使用例:税込価格の計算
例として、商品の税抜価格と消費税率を受け取り、税込価格を計算して返す関数を作成します。
def calculate_tax_included_price(price, tax_rate):
"""
税抜価格と税率から税込価格を計算する関数
"""
tax_amount = price * tax_rate
total_price = int(price + tax_amount)
return total_price
# --- 関数の呼び出し ---
# 1000円の商品、税率10% (0.1)
result1 = calculate_tax_included_price(1000, 0.1)
print(f"計算結果1: {result1}円")
# 5000円の商品、税率8% (0.08)
result2 = calculate_tax_included_price(5000, 0.08)
print(f"計算結果2: {result2}円")
実行結果:
計算結果1: 1100円
計算結果2: 5400円
関数 calculate_tax_included_price を定義することで、価格や税率が変わっても、同じ計算ロジックを何度も簡単に呼び出すことができます。
戻り値(Return)
関数の中で return 文を実行すると、関数の処理はその時点で終了し、return の後ろに指定した値が「呼び出し元」に返されます。
上記の例では、計算された total_price が戻り値となり、変数 result1 や result2 に代入されています。
もし return 文がない場合、または return だけ書いて値を指定しなかった場合、その関数は None という特殊な値を返します。
引数・戻り値のない関数
すべての関数が計算結果を返すわけではありません。単に画面にメッセージを表示したり、ログを記録したりするだけの関数もあります。
具体的な使用例:システム起動メッセージ
def show_system_status():
"""
システムの現在の状態を表示する(戻り値なし)
"""
print("--- System Status ---")
print("OS: Linux")
print("Status: OK")
print("---------------------")
# 関数の呼び出し(引数は不要)
show_system_status()
# 戻り値のない関数の結果を変数に入れてみる
status_result = show_system_status()
print(f"戻り値の中身: {status_result}")
実行結果:
--- System Status ---
OS: Linux
Status: OK
---------------------
--- System Status ---
OS: Linux
Status: OK
---------------------
戻り値の中身: None
この例の show_system_status 関数には return 文がありません。そのため、関数を呼び出すと print 文による出力は行われますが、変数 status_result には None が格納されます。
まとめ
- 関数の定義:
def 関数名(引数):の形式で記述します。 - 引数: 関数に渡すデータです。複数指定可能です。
- 戻り値:
return文を使って関数から値を返します。 - 再利用性: 処理を関数化することで、同じコードを何度も書く必要がなくなり、プログラムの可読性と保守性が向上します。
