設計

関数

レシピをまとめて名付ける:処理の部品化でコードをスッキリさせよう

関数とは?処理の「部品化」

プログラミングにおいて、関数(Function)は「処理のまとまりに名前をつけて、再利用できるようにしたもの」です。料理に例えるなら、「野菜を切って、炒めて、盛り付ける」という一連の工程に「野菜炒めを作る」という名前をつけるようなものです。一度定義してしまえば、あとはその名前を呼ぶだけで、何度でもおなじ処理を実行できます。

基本構文:def で定義する

Pythonでは `def` キーワードを使って関数を定義します。

Python
def greet(name):
    """挨拶を表示する関数"""
    print(f"こんにちは、{name}さん!")
    print("Pythonの世界へようこそ。")

# 呼び出し
greet("佐藤")
greet("鈴木")

関数名の直下に書く `"""..."""` は「Docstring(ドックストリング)」と呼ばれ、関数の説明書として機能します。

引数(ひきすう)をマスターする

関数に渡すデータのことを引数と呼びます。Pythonの関数は、引数の扱いが非常に柔軟です。

1. デフォルト引数

引数が渡されなかった時の「初期値」を設定できます。

def power(base, exponent=2):
    return base ** exponent

print(power(3))    # 3の2乗 = 9 (exponentは省略されたので2)
print(power(3, 3)) # 3の3乗 = 27

2. キーワード引数

引数の順番を気にせず、名前を指定して値を渡すことができます。

def create_user(name, age):
    print(f"{name} ({age}歳)")

create_user(age=25, name="田中") # 順番が逆でもOK

戻り値(Return)

`print` と `return` の違いは重要です。`print` は画面に表示するだけですが、`return` は計算結果を関数の呼び出し元に「返却」します。返された値は、変数に入れたり、別の計算に使ったりできます。

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

result = add(10, 20) # resultに30が入る
print(result * 2)    # 60

変数の有効範囲(スコープ)

関数の中で作った変数は、その関数の中でしか使えません(ローカル変数)。逆に関数の外で作った変数は、関数の中から参照することはできますが、書き換えるには `global` キーワードが必要です(ただし、globalの使用は推奨されません)。

💡 型ヒントで読みやすく

最近のPythonでは、引数と戻り値に型を指定することが推奨されています。

def double(number: int) -> int:
    return number * 2

これにより、「この関数は整数を受け取って、整数を返すんだな」と一目で分かります。

まとめ

関数を使いこなせば、冗長なコードが消え、スッキリとして読みやすいプログラムになります。「同じ処理を2回書いたら関数にする」という原則を意識して、どんどん部品化を進めていきましょう。