(1) 関数定義
データを与えると、何かしらの結果を返す機能を関数といいます。与えるデータを引数(ひきすう)といい、返ってくる結果を戻り値といいます。
組み込み関数やモジュールのインポートについては、1-3. 関数 で学びましたが、これ以外にも自分で関数を定義することができます。これを関数定義といい、def文を使います。文献によっては、ユーザー定義関数や自作関数、あるいは単に関数と表現されています。
関数の定義(def文)
def 関数名(引数, ...):でユーザー定義関数を定義することができます。行末にはコロン:が必要で、最後のreturnまではインデントを下げます。
def 関数名(引数, 引数, 引数, ...):
# ここに関数で行う処理を記述する
return 関数の戻り値
def文の最後にはreturn文を使って関数の戻り値を指定します(戻り値が不要な関数の場合には、return文は省略可能です)。defはdefine(定義する)の略です。
関数の呼び出し
変数 = 関数名(引数, ...)でユーザー定義関数を呼び出し、戻り値を変数に代入すことができます。
変数 = 関数名(引数, 引数, 引数, ...)
関数の基本形
実際のプログラムの中では次のように書きます。関数は呼び出す前に定義する必要があります。また、関数を定義した後は2行の空白行を入れることが推奨されています。
def 関数名(引数, 引数, 引数, ...): # ここからが関数(関数は呼び出されたところで実行される)
# ここに関数で行う処理を記述する
return 関数の戻り値 # returnまでが関数
# ここからがメインの処理
変数 = 関数名(引数, 引数, 引数, ...) # 関数の呼び出し
三角形の面積を求める関数
次の例では、底辺baseと高さheightから三角形の面積を求めて返す関数triangle_areaを定義し、底辺3,高さ4の三角形の面積を表示します。
def triangle_area(base, height): # 関数を定義。引数としてbaseとheightの2つの値を受け取る。
area = base * height / 2 # 関数内の処理。baseとheightをかけて2で割り、面積areaに代入する。
return area # 関数はここまで。returnでareaの値を返す。
area = triangle_area(3, 4) # 関数の呼び出し。3と4の値を関数triangle_areaに渡し、areaに代入。
print(area) # areaを出力
6.0