関数について

3.関数について

関数は、インプットされた値をもとに、決められた処理を実行してくれるプログラムの部品である。プログラムをコーディングしていくと、入力された値のチェックや、毎回同じように行う必要がある計算式など、同じような処理を複数回実行する場合がある。

Pythonではdef文を用い関数を定義し、関数に渡す値のことを引数と呼び、関数から返ってくる値のことを戻り値と呼ぶ

dsf func(a,b):    # 関数を定義

    return a+b  # 関数の戻り値

print(func(1,3)) # 関数の呼び出しと引数

print(func(4,9)) # 関数の呼び出しと引数

実行結果

4

13

 

何度も繰り返す必要があるような処理を予め部品化し、何度も呼び出す形で利用することができれば便利である。関数をうまく使うことで、コード全体の「構造化」が図れ、効率的なプログラミングが可能となる。

 

引数や戻り値は必須ではなく、引数や戻り値が存在しない関数も存在する。def文は1つのブロックを構成する場合は、インデント(字下げ)をすべて合わせる必要がある。インデントを適切にしないと構文エラーになるか、思わぬ動きにつながり注意が必要である。またdef文では( )の後ろに:が必要となるので注意する。

 

Pythonの関数の命名ルールは、変数の命名ルールと基本的に同様である。関数の命名ルールは、①英語(大文字も小文字も可能)②数字(0~9)③_(アンダースコア)を使用する。ただし、関数の先頭に数字を用いるとエラー(SyntaxError: invalid syntax)となる。関数の引数と戻り値については、引数は関数に渡す値であり、関数へのインプット情報である。戻り値は関数から返される値であり、関数のアウトプット情報である。

 

関数プログラミング表現のバリアントを示す。

   一般的な引数を渡す方法

def add_func(a,b):

    return a + b

print(add_func(2,9))

実行結果

11

 

   引数に渡す値を「引数名」で指定する方法

def add_func(a, b):

    return a + b

answer = add_func(b=9, a=2,)

print(answer)

実行結果

11

 

   複数の戻り値を設定する方法

戻り値を複数個指定することも可能で,(コンマ)で複数個の戻り値を指定する。ただし、def文の中における return は1つだけであり、戻り値はタプルで返される。

def calc_func(a, b):

    return a+b, a-b , a*b , a/b

answer = calc_func(2, 8,)

print(answer)  #実行結果 (10, -6, 16, 0.25)

 

   デフォルト引数を定義する方法

引数には、デフォルト値を設定することができ、引数に何も渡されなかった場合には、事前に定義することが可能である。つまり、次のコードのように、引数が指定されなかった場合には、デフォルトの引数が設定されており、デフォルト値を設定した引数には値を渡す必要がないことになる。さらに、値を渡さなくてもデフォルト値を設定しているため、構文エラーにはならない。

def func(name="スカイツリー"):

    print(name)

func()   #引数指定なしなので、デフォルトのスカイツリーが入る。

func("東京タワー")  #引数に東京タワーを指定

実行結果

スカイツリー

東京タワー

 

なお、デフォルト引数とデフォルト値を持たない引数を同時に定義する場合には注意が必要。デフォルト引数は必ず最後の引数にする必要がある。

def func(height, name="Tokyo Tower"):

    print(name, height)

func("333m")  #一部引数指定

func("634","スカイツリー")  #引数にスカイツリーを指定

実行結果

Tokyo Tower 333m

スカイツリー 634m


このブログの人気の投稿

小論文 統計的因果推論の現場適用による排泄ケアの展望

排泄ケア相談支援員の育成に向けて

解説 排泄ケアの相談支援計画書作成のためのチェックリスト