Pythonのdefで関数定義
Pythonのdefは関数を定義する
Pythonのdefは、関数を定義するためのものです。
以下のような書式で使用します。
def 関数名 ([引数, …]):
処理
[return 返り値]
定義した関数の呼び出しは、関数名(引数)という形式で行います。
サンプルコードは以下の通りです。
$ cat defsample.py #!/usr/bin/python3 def greeting(name): print(f"こんにちは, {name}") greeting("じょうじ") # Output: こんにちは, じょうじ
f”こんにちは…の部分は、フォーマット済み文字列リテラルと呼ばれるもので、文字列中の中括弧で囲んだ部分{name}が変数に置き換わります。
参考)Pythonのprint の「変数をフォーマット文字列で表示する」の項目を参照
$ ./defsample.py こんにちは, じょうじ
def以外に、無名関数lambdaを使って関数定義することも可能です。
Pythonのdefで関数の引数やデフォルト値、可変長引数を定義する
- 関数の定義: def 関数名([引数, …])
- 引数のデフォルト値指定: def 関数名(引数=デフォルト値)
- 可変長引数: def 関数名(*args)
デフォルト値の指定とは、関数に渡される引数のうち、無指定の引数に設定される値です。引数に値が渡されなかった場合は、デフォルト値が使用されます。
def greet(name="World"): print("Hello, " + name + "!")
実行例は以下の通りです。
#デフォルト値を使用 greet() #=> Hello, World! #引数を指定 greet("Python") #=> Hello, Python!
Pythonでは、関数定義において「*」を使用して可変長引数を設定することができます。可変長引数とは、関数に渡される引数の個数が可変であることを意味します。
def my_function(*args): # 関数の処理
このような関数定義をすると、my_function()関数を任意の個数の引数で呼び出すことができます。例えば、my_function(1, 2, 3, 4)のように、任意の個数の引数を渡すことができます。
def variable_arguments(*args): for arg in args: print(arg) variable_arguments(1, 2, 3, 4, 5)
実行するとこうなります。
1 2 3 4 5
Pythonのdefで返り値を返す
Pythonのdefでは、関数を定義する際に、関数から返す値を指定することができます。関数を実行すると、関数の最後に記述した値が関数の返り値として出力されます。
def sample_function(): return "This is a sample function." print(sample_function())
注意すべき点としては、関数の処理結果を返すためには必ずreturn文を使用することが挙げられます。
def関数では、関数定義を行うだけでは処理結果を返しません。そのため、処理結果を返すためには必ずreturn文を使用して返り値を設定する必要があります。
また、return文を複数書くことはできません。返り値を複数設定したい場合は、辞書やタプルなどを使用する必要があります。
Pythonのdefのまとめ
- defキーワードを使って関数を定義する。
- 引数を定義し、関数内で受け取る変数を定義する。
- returnキーワードを使って関数の処理結果を返す。