【Python】関数の書き方と使い方の基本

作成日: 更新日:

開発環境

  • Python version: python 3.10.11

Pythonの関数とは

Pythonの関数とは、特定のタスクや操作を実行するための処理を定義するために使用されます。 関数を定義することにより、プログラム内で同じ処理を何度も実行したり、特定の機能をまとめて管理することがで着るようになります。 また、Pythonではクラスの外部に定義されたものを関数、クラス内に定義してクラスのオブジェクトに関連付けしたものをメソッドと呼びます。 公式リファレンス:https://docs.python.org/ja/3/tutorial/controlflow.html#defining-functions

Pythonの関数の書き方

Pythonの関数の書き方をご紹介します。

1def 関数名(引数1, 引数2, ...):
2    # 一連の処理を記述
3    return 戻り値

Pythonの関数はdefキーワードを使用して定義し、インデントされたコードブロック内に実行した処理を記述します。 また、関数名は関数の識別子であり、引数は関数に渡される値、必要に応じてreturn文を使って戻り値である結果を返すことができます。

Pythonの関数の命名規則

Pythonの関数の命名規則にはいくつかルールがあります。

  • 1文字目は英文字かアンダースコア(_)
  • 2文字目以降は英数文字、アンダーバー

また、大文字の英文字で開始することも可能ですが、Pythonでは「全小文字、単語はスネークケースで区切る」ことが推奨されています。

Pythonの関数の定義場所

Pythonの関数の定義場所にはルールがあります。 Pythonに限ったことではありませんが、プログラムは上から順番に読み込まれて実行されるため、関数を呼び出す「前」にメソッドを定義しなければエラーになります。

Pythonの関数の使い方

Pythonの関数のよくあるパターンをサンプルコードを用いて使い方の解説をしていきます。

引数と戻り値がない単純な関数

1def greet():
2    print("こんにちは")
3
4greet()

greetを呼び出すと、"こんにちは" が出力されます。 引数も戻り値もない場合、単に特定の処理を実行するだけの関数を定義できます。

引数がない単純な関数

1def greet():
2    return "こんにちは"
3
4result = greet()
5print(result)

戻り値として文字列 "こんにちは" を返します。 関数を呼び出して結果を変数に代入し、その後に結果を表示しています。

引数を受け取り戻り値がある関数

1def greet(name):
2    return name + "さん、こんにちは"
3
4result = greet("山田")
5print(result)

この関数は引数 name を受け取り、それに挨拶のメッセージを付け加えて返します。 関数を呼び出す際に引数 "山田" を渡し、その結果を表示しています。

デフォルト引数を持つ関数

1def greet(name, greeting="こんにちは"):
2    return name + "さん、" + greeting
3
4result = greet("山田")
5print(result)
6result = greet("山田", "おはようございます")
7print(result)

この関数は、引数 name とデフォルト引数 greeting を持っています。 greeting にはデフォルトで "こんにちは" が設定されているため、関数を呼び出す際に greeting を指定しない場合、デフォルトの挨拶が使われます。

キーワード引数を使用して呼び出す

1def greet(name="ゲスト", greeting="こんにちは"):
2    return name + "さん、" + greeting
3
4result = greet(greeting="おはようございます")
5print(result)
6result = greet(greeting="おはようございます", name="山田")
7print(result)

この関数は、デフォルト引数を持つだけでなく、キーワード引数を使用して呼び出すこともできます。 これにより、引数の順序を気にせずに明示的な引数名を指定できます。

可変長引数を持つ関数

1def calc(*numbers):
2    total = 0
3    for number in numbers:
4        total += number
5    return total
6
7result = calc(100,50,30,20)
8print(result)

この関数は可変長引数 *numbers を受け取り、与えられたすべての引数を合計して返します。 関数を呼び出す際に異なる個数の引数を使うことができます。

キーワード引数の辞書を受け取る関数

1def display(**user):
2    name = user.get("name")
3    age = user.get("age")
4    sex = user.get("sex")
5    return f"{name}さんは{age}歳の{sex}です。"
6
7result = display(name="山田", age=30, sex="男性")
8print(result)

この関数はキーワード引数の辞書 **user を受け取り、その中から特定のキーを使って情報を取り出して利用します。 関数を呼び出す際には、キーワード引数を使って情報を渡します。

おわりに

Pythonの関数の使い方を解説してきました。 プログラミングの中でも関数への理解はハードルが高いかもしれませんが、何度も再利用可能な処理を一か所にまとめることができれば、開発効率があがるだけでなく保守性も高くなります。 どのように関数を定義すれば構造的に管理しやすく使いやすいかを考えて関数を使いこなしていきましょう。

【Python】関数の書き方と使い方の基本 | いっしー@Webエンジニア