目次
開発環境
- Python version: python 3.10.11
Pythonの関数とは
Pythonの関数とは、特定のタスクや操作を実行するための処理を定義するために使用されます。
関数を定義することにより、プログラム内で同じ処理を何度も実行したり、特定の機能をまとめて管理することがで着るようになります。
また、Pythonではクラスの外部に定義されたものを関数、クラス内に定義してクラスのオブジェクトに関連付けしたものをメソッドと呼びます。
公式リファレンス:https://docs.python.org/ja/3/tutorial/controlflow.html#defining-functions
Pythonの関数の書き方
Pythonの関数の書き方をご紹介します。
1 2 3 | def 関数名(引数1, 引数2, ...): # 一連の処理を記述 return 戻り値 |
Pythonの関数はdef
キーワードを使用して定義し、インデントされたコードブロック内に実行した処理を記述します。
また、関数名は関数の識別子であり、引数は関数に渡される値、必要に応じてreturn
文を使って戻り値である結果を返すことができます。
Pythonの関数の命名規則
Pythonの関数の命名規則にはいくつかルールがあります。
- 1文字目は英文字かアンダースコア(_)
- 2文字目以降は英数文字、アンダーバー
また、大文字の英文字で開始することも可能ですが、Pythonでは「全小文字、単語はスネークケースで区切る」ことが推奨されています。
Pythonの関数の定義場所
Pythonの関数の定義場所にはルールがあります。
Pythonに限ったことではありませんが、プログラムは上から順番に読み込まれて実行されるため、関数を呼び出す「前」にメソッドを定義しなければエラーになります。
Pythonの関数の使い方
Pythonの関数のよくあるパターンをサンプルコードを用いて使い方の解説をしていきます。
引数と戻り値がない単純な関数
1 2 3 4 | def greet(): print("こんにちは") greet() |
greet
を呼び出すと、"こんにちは" が出力されます。
引数も戻り値もない場合、単に特定の処理を実行するだけの関数を定義できます。
引数がない単純な関数
1 2 3 4 5 | def greet(): return "こんにちは" result = greet() print(result) |
戻り値として文字列 "こんにちは" を返します。
関数を呼び出して結果を変数に代入し、その後に結果を表示しています。
引数を受け取り戻り値がある関数
1 2 3 4 5 | def greet(name): return name + "さん、こんにちは" result = greet("山田") print(result) |
この関数は引数 name
を受け取り、それに挨拶のメッセージを付け加えて返します。
関数を呼び出す際に引数 "山田" を渡し、その結果を表示しています。
デフォルト引数を持つ関数
1 2 3 4 5 6 7 | def greet(name, greeting="こんにちは"): return name + "さん、" + greeting result = greet("山田") print(result) result = greet("山田", "おはようございます") print(result) |
この関数は、引数 name
とデフォルト引数 greeting
を持っています。
greeting
にはデフォルトで "こんにちは" が設定されているため、関数を呼び出す際に greeting
を指定しない場合、デフォルトの挨拶が使われます。
キーワード引数を使用して呼び出す
1 2 3 4 5 6 7 | def greet(name="ゲスト", greeting="こんにちは"): return name + "さん、" + greeting result = greet(greeting="おはようございます") print(result) result = greet(greeting="おはようございます", name="山田") print(result) |
この関数は、デフォルト引数を持つだけでなく、キーワード引数を使用して呼び出すこともできます。
これにより、引数の順序を気にせずに明示的な引数名を指定できます。
可変長引数を持つ関数
1 2 3 4 5 6 7 8 | def calc(*numbers): total = 0 for number in numbers: total += number return total result = calc(100,50,30,20) print(result) |
この関数は可変長引数 *numbers
を受け取り、与えられたすべての引数を合計して返します。
関数を呼び出す際に異なる個数の引数を使うことができます。
キーワード引数の辞書を受け取る関数
1 2 3 4 5 6 7 8 | def display(**user): name = user.get("name") age = user.get("age") sex = user.get("sex") return f"{name}さんは{age}歳の{sex}です。" result = display(name="山田", age=30, sex="男性") print(result) |
この関数はキーワード引数の辞書 **user
を受け取り、その中から特定のキーを使って情報を取り出して利用します。
関数を呼び出す際には、キーワード引数を使って情報を渡します。
おわりに
Pythonの関数の使い方を解説してきました。
プログラミングの中でも関数への理解はハードルが高いかもしれませんが、何度も再利用可能な処理を一か所にまとめることができれば、開発効率があがるだけでなく保守性も高くなります。
どのように関数を定義すれば構造的に管理しやすく使いやすいかを考えて関数を使いこなしていきましょう。