今回は、Pythonで「関数」を作る方法について解説します。
関数を作る意義
プログラミングには、しばしば関数が登場します。では、関数は何のために使うのでしょうか。
関数は、よく使う処理を箱のような形でまとめることができる機能です。関数を使うことで、何回も同じ処理を実行する必要があっても、ソースコードのまとまりが良くなり、見やすくなります。
数行~数十行程度の短めのコードであれば見やすさを追求する意味はあまりありませんが、数百~数千もの長さになると、コードが見やすくどのような処理をしているかがすぐに分かる、というのはとても重要な要素になります。
関数とは?
中学、高校数学等で出てくる「関数」(2次関数、三角関数など)と、プログラミングにおける「関数」は、名前は同じですが大きく異なります。
プログラミングにおける関数は、何か特定の処理をする「機能」を自分で作りたい場合に使います。例えば、ある整数aについて、aが2で割り切れれば1を足し、割り切れなければ2を足すという処理をしたい場合を考えます。
関数を作らないでこの処理を記述すると、次のようになります。
a = 10 #整数a=10を定義
if a % 2 == 0:
a += 1
else:
a += 2
print(a)
関数がなくてもちゃんと処理ができるじゃないか、と思う方もいるかもしれません。では、少し違うシチュエーションを考えてみましょう。
先ほどは1つの整数だけについて処理を行いましたが、2つ以上の整数について同じことをしたい場合はどうなるでしょうか。
上記のコードを何回もコピーすることでも処理はできますが、それだとコードが無駄に長く、見づらくなってしまいます。
ここで、関数を導入する必要性が生じます。
関数の作り方
Pythonで関数を作る際は、次のようにコードを書きます。
def 関数の名前(引数):
処理
return 返り値(戻り値とも言う)
引数(ひきすう)とは、関数の内部で使われる変数のことを指します。返り値(戻り値)とは、関数の処理が終わった際に関数から返ってくる値のことです。
これだけでは少し分かりにくいと思うので、例として先ほど行った処理を関数として書いてみます。
例:関数を作る
def figure(a):
if a % 2 == 0:
a += 1
else:
a += 2
return a
関数の名前は”figure”にしました。引数は先ほどの処理で必要だった整数aです。返り値は整数aを指定しています。こうすることで、処理が終わった後のaを取得することができます。
今度は、作成した関数を使って処理を書きます。
print(figure(10)) #aが10,7,100の場合
print(figure(7))
print(figure(100))
関数を使えば、煩雑な処理をスマートに行えます。関数figure()のかっこの中には、引数を入れます。これが関数における”a”に対応しています。
a= 10の場合の処理を行いたい場合は、figure(10)とします。ただこれだけだと処理が終わった後のaが返ってくるだけで終わるので、出力のためにprint()を使います。
下の画像は今回の記事で出てきた処理をまとめた図です。少し難しい内容ですが、参考になれば幸いです。
