Pythonの関数入門:defによる定義、引数、戻り値の基本

プログラミングにおいて、特定の処理をひとまとめにして名前を付け、何度も再利用できるようにしたものを「関数」と呼びます。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 が戻り値となり、変数 result1result2 に代入されています。

もし 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 文を使って関数から値を返します。
  • 再利用性: 処理を関数化することで、同じコードを何度も書く必要がなくなり、プログラムの可読性と保守性が向上します。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次