Python

【Python】関数

みいと

この記事ではPythonの関数についてまとめています。

関数とは

いろいろな処理をまとめたものを関数と言います。

プログラム内で何度も出てくるような処理を関数化しておくと、同じ処理を何度も記述しなくても関数を使うだけで済むので非常に便利です。

print関数のようにPythonに組み込まれている関数もありますが、自分で関数を作ることもできます。

関数の作り方

Pythonで関数を作るにはdefの後に半角スペースを入れてから関数名を設定して、関数名の後に「():」を記述します。

「:」の次の行からはインデント(字下げ)して関数が行う処理を記述していきます。

関数の作り方
def 関数名():
関数が行う処理

関数の使い方

関数は作っただけでは何も起こりません。

作成した関数を使うことで関数内に記述した処理が実行されます。

関数は「関数名()」で使うことができます。

関数の使い方
関数名()

試しに文字列をprintで表示するだけの関数を作成して、2回実行してみました。

このように関数を使うことで、関数内に記述された処理が実行されます。

引数

関数には引数を設定することができます。

引数は関数が受け取る値のことです。

関数を使うときに値を渡し、関数は受け取った値を使って処理を行うことができます。

引数は関数を定義するときの()の中に引数名を「,」区切りで記述して設定します。

引数がある関数の作り方
def 関数名(引数名1,引数名2,...):
関数が行う処理

引数の使い方

受け取った引数は、引数名を使って変数と同じように使うことができます。

引数を使った関数定義

引数のデフォルト値

デフォルト値(初期値)は関数を使うときに値が渡されなかった時に使われる値です。

引数名の後に「=デフォルト値」でデフォルト値を設定することができます。

引数のデフォルト値設定
引数名1=デフォルト値

初期値の注意点

複数の引数がある場合、デフォルト値がない引数の前にデフォルト値がある引数を設定してしまうとエラーになります。

デフォルト値がない引数の前にデフォルト値がある引数を設定した関数はエラー

そのため、デフォルト値がある引数とデフォルト値がない引数が混在する場合は、デフォルト値がない引数から設定していく必要があります。

デフォルト値がない引数から設定した関数

引数の渡し方

関数に引数を渡すには、値だけを渡す方法と、引数名を指定して渡す方法があります。

値だけを渡す

関数に引数の値だけを渡す方法は、関数を呼び出すときに()の中に値を「,」区切りで記述します。

注意点としては値を渡す順番に意味があるという点です。

引数の値だけを渡して関数を使用

関数を使うときに1番左側に記述した値は関数の定義で1番左に設定された引数に入り、2番目の値は2番目に設定された引数に入るという感じで、渡す順番と設定された順番が対応しています。

値だけを渡した場合の引数のイメージ

引数名を指定して渡す

引数名を指定して引数を渡す方法は、関数を呼び出すときに()の中で「引数名=値」の形式で記述します。

複数の引数を渡す場合は「,」区切りで記述していきます。

引数名を指定する渡し方では、引数を渡す順番を気にせずに引数を渡すことが可能です。

引数名を指定して引数を渡して関数を使用

戻り値

関数は処理した結果を関数の呼び出し元に返すことができます。

関数が返す値のことを戻り値と言います。

戻り値の設定
return 戻り値

戻り値がある関数を実行すると、戻り値を変数で受け取ることができます。

戻り値の受け取り方
変数 = 関数名(引数)

引数として底辺と高さを受け取り、三角形の面積を戻り値とする関数を作って試してみました。

この関数の例ではreturnのあとに計算式を記述しているので、計算式の結果が戻り値になります。

関数の定義のあとは関数を使って、その戻り値を変数ansに代入し、printで表示しています。

まとめ

今回はPythonの関数についてまとめました。

自分で関数を作れるようになると、何度も出てくる処理を関数化して処理を短く書くことができるので、読みやすいプログラムをかけるようになってくると思います。

関数のまとめ
  • 関数はいろいろな処理をまとめたもの
  • 何度も出てくる処理を関数化すると便利
  • 引数を設定すると関数を使うときに値を渡すことができる
  • 引数にはデフォルト値を設定できる
  • 関数に引数を渡すには値だけを渡す方法と、引数名を指定して渡す方法がある
  • returnで戻り値を設定すると、関数の処理結果を呼び出し元に返すことができる
ABOUT ME
みいと
みいと
興味を持ったものをいろいろと勉強しています。
記事URLをコピーしました