Python入門:関数では、関数の作り方について解説しました。今回は、関数における引数について掘り下げます。
復習:関数の作り方
Pythonで関数を作成する場合、次のように書きます。
def 関数の名前(引数):
処理
return 返り値
引数は複数指定できる
Python入門:関数を作るでは引数は1つだけでしたが、引数は2つ以上設定することも可能です。
例:3つの引数がある関数
def figure(a,b,c):
if a % 2 == 0:
a += b
else:
a += c
return a
引数のデフォルト値を設定する
関数を定義する際には、引数のデフォルト値を設定することもできます。デフォルト値がなくても関数は正常に動作しますが、関数を呼び出す際引数の値を設定し忘れたとしても、「引数=デフォルト値」として関数が実行されるので、エラーを減らす上で役立ちます。
例:引数にデフォルト値を設定した場合と、しない場合
#デフォルト値がない場合
def figure(a):
if a % 2 == 0:
a += 1
else:
a += 2
return a
print(figure()) #引数の値を指定せずに関数を呼び出す
#デフォルト値a = 10を設定
def figure_changed(a = 10):
if a % 2 == 0:
a += 1
else:
a += 2
return a
print(figure_changed()) #引数の値を指定せずに関数を呼び出す
デフォルト値を設定していないfigure()の場合、引数を指定せずに関数を呼び出すと”TypeError: figure() missing 1 required positional argument: ‘a'”というエラーが発生します。ところが、デフォルト値を設定したfigure_changedでは、エラーにならずa=10の場合の処理を行っています。
このように、引数にデフォルト値を設定することで、引数の値の設定を忘れた場合でもエラーを防ぐことができます。
関数を実行する際の引数値の指定
関数を実行する際は、関数の名前(引数値)という風に書きますが、引数を多く設定した場合、どれがどの引数に対応しているかが分かりづらくなることがあります。
これを防ぐために、関数の名前(引数1 = 引数値, 引数2=引数値)といった形で関数を呼び出すこともできます。
例:
#関数calculateを作る
def calculate(a,b,c,d):
if a % 2 == 0:
a += b
elif a > 0:
a *= c
else:
a /= d
return a
print(calculate(10,5,3,1))
print(calculate(a=10,b=5,c=3,d=1))
関数を作り、print()を2つ書きました。どちらも出力される値は同じですが、2つ目のprint()の方がそれぞれの引数の値が分かりやすいと思います。
まとめ
- 関数を作る際は、引数を自由に設定できる
- 引数には、デフォルトの値を設定することもできる