プログラミング初心者の方だと、関数の使い方がわからないという方もいらっしゃるのではないでしょうか。
プログラミングで関数を使うメリットには、以下のようなものがあります。
- プログラムの可読性が上がる
- プログラムの保守性が上がる
- 機能を管理しやすい
本記事では、上記のメリットについて解説したうえで、Pythonでの関数の作り方を解説していきます^^
関数を使うメリット
プログラムの可読性が上がる
例えば、入力されたデータをデータベースに登録する処理を「処理A」とします。
関数を使っていない場合、プログラムの一連の処理の中で処理Aが複数ある場合、その都度同じ処理を記述しなければなりません。
これでは、プログラムのソースコード自体が長くなってしまい、可読性が低下してしまいます。
処理Aを実行するための関数を作っておけば、関数を呼び出すだけで処理Aを実行できます。なので、ソースコードが短くなり、可読性が上がります。
また、関数にわかりやすい名前を付けておくことで、より可読性が向上します。
プログラムの保守性が上がる
先ほどの処理Aに修正が必要になったとします。
関数を使っていない場合、プログラムの各所に処理Aがそのまま記述されているので、全ての箇所に修正を加える必要があります。
一方、処理Aを実行する関数があれば、関数の中身を修正するだけで済みます。
修正にかかる手間が省けるだけでなく、修正箇所の抜け漏れといったミスを防ぐことができます。
機能を管理しやすい
関数を使っていない場合、ソースコードを見ただけではどのような処理が行われているかがわかりにくい場合があります。
関数を使えば、各機能ごとに処理をまとめておけるので、どういった機能があるのかを把握することができます。
Pythonで関数を使う
実際に、Pythonで関数を使ってみましょう。
関数の定義
関数の定義には、” def ” というキーワードを使います。Pythonの関数の範囲は、インデントによって決まります。
def 関数名():
#処理
関数名は、基本的に何でもいいですが、関数内で行っている処理がわかるような名前をつけることをお勧めします。
例)データベースにデータを登録する関数の場合
def InsertDB():
関数の呼び出し
関数を定義しただけでは、関数内の処理は実行されません。関数の処理を実行するためには、関数を呼び出す必要があります。
関数の呼び出しには、関数名()を記述します。
例えば、以下のような関数を定義します。
def greeting():
print("Hello!")
この関数では、”Hello!”を出力します。この関数を呼び出すには、以下のように記述します。
#関数の定義
def greeting():
print("Hello!")
#関数の呼び出し
greeting()
引数
引数とは、関数を呼び出す際に関数に与える値です。関数内では、この値を使って処理が実行されます。
たとえば、以下のような関数を定義します。
def greeting(name):
print(name + "さんこんにちは!")
“name” は関数内で定義された引数で、「仮引数」と呼ばれます。
この “name”の値には、呼び出し側で与えられた引数の値が入ります。
#関数の定義
def greeting(name):
print(name + "さんこんにちは!")
#関数の呼び出し
greeting("佐藤さん")
#Output################
"佐藤さんこんにちは!"
上記の場合、呼び出し側で”佐藤さん”を引数として渡しているので、関数内の”name”には”佐藤さん”が入ります。
呼び出し側で与える引数(例では”佐藤さん”)は、「実引数」と呼ばれます。
複数の引数を与える
1つの関数に対して、複数の引数を与えることもできます。
例えば、以下のように書きます。
#関数の定義
def greeting(name, age):
print(name + "さんは" + age + "歳です。")
#関数の呼び出し
greeting("佐藤さん", 23)
#Output################
"佐藤さんは23歳です。"
このように、カンマ(,)で区切ることで、複数の引数を渡すことができます。
このときの”name”は「第一引数」、”age”は「第二引数」と呼ばれます。
戻り値(返り値)
戻り値を使うことで、関数内で処理した結果を呼び出し元に返すことができます。
戻り値には”return“というキーワードを用います。例を使って説明します。
def sumNumber(num):
ans = num + 10
return ans
value = sumNumber(5)
print(value)
#Output################
15
このとき、引数として”5″を渡して関数”sumNumber”を呼び出しています。
関数内では処理が実行され変数”ans”には”15″が格納されています。そして関数では、ansを戻り値として呼び出し元に返しています。
呼び出し元に戻ると、sumNumber(5)の処理結果である”15″が変数”value”に格納されます。
戻り値を指定しない場合は”None”が自動的に返されます。
関数内の変数の扱いについて
関数内で宣言した変数は、基本関数内でしか使うことができません。
なので、以下のような場合はエラーになってしまいます。
def sumNumber(num):
ans = num + 10
return ans
value = sumNumber(5)
print(ans)
#Output################
ERROR!!
関数内で定義した変数”ans”を関数の外でprintしようとしていますが、この場合エラーになってしまいます。
まとめ
関数のメリットとPythonでの関数の扱い方を解説してきました。
関数を使わないプログラムはほぼあり得ないと思うので、是非使い方をマスターしておきたいですね。
積極的に関数を作ってみてください^^
ではでは👋