関数
レシピをまとめて名付ける:処理の部品化でコードをスッキリさせよう
関数とは?処理の「部品化」
プログラミングにおいて、関数(Function)は「処理のまとまりに名前をつけて、再利用できるようにしたもの」です。料理に例えるなら、「野菜を切って、炒めて、盛り付ける」という一連の工程に「野菜炒めを作る」という名前をつけるようなものです。一度定義してしまえば、あとはその名前を呼ぶだけで、何度でもおなじ処理を実行できます。
基本構文:def で定義する
Pythonでは `def` キーワードを使って関数を定義します。
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` は計算結果を関数の呼び出し元に「返却」します。返された値は、変数に入れたり、別の計算に使ったりできます。
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回書いたら関数にする」という原則を意識して、どんどん部品化を進めていきましょう。