週末SEのメモブログ

日曜大工ならぬ日曜SEの備忘録

第6回:Pythonプログラミング入門 必須引数とオプション引数

前回の記事で関数について紹介しました。

第5回:Pythonプログラミング入門 関数 - 週末SEのメモブログ

 

関数には引数がありますが、この引数には2種類のタイプがあります。

一つが必須引数、もう一方がオプション引数と呼ばれます。

必須引数は名前の通り、ユーザーが関数を呼び出すときに省略できません。

もし、必須引数を省略してしまうとPythonは例外(エラー)を吐いてしまいます。

 

一方、オプション関数は省略ができます。

オプション関数は省略した場合、デフォルトで設定した値が引数として使用されます。

オプション引数も必須引数と同様にカンマで区切ることで複数設定できます。

 

オプション引数の構文は下記の通り、

 

[関数名]([引数名] = [引数のデフォルト値])

 

実際のコードは下記のようになります。

def f(x, y=2):

    return x * y

 

print(f(2))

print(f(2, 4))

 このサンプルコードでは、1回目のprint()で 4 が出力され、2回目では 8 が出力されます。

なお、オプション引数を利用する場合に下記の順番に引数を宣言するとエラー(SyntaxError: non-default argument follows default argument)になってしまいますので、注意してください。

def f(x=2, y):

    return x * y 

 ちなみにエラーは

SyntaxError: non-default argument follows default argument

直訳すると「デフォルト以外の引数はデフォルトの引数の後に続きます」・・・

デフォルト値を取る引数の後にデフォルト値を取らない引数が来てますよ、ということですね。

下記のように書くことで回避できます。

def f(y, x=2):

    return x * y