関数を作ってみよう
今回の記事では、関数の作り方を取り扱っていきましょう。その前に、まずは関数の概念から解説します。
関数とは、いろいろな処理が一つにまとまっているものです。日常生活でイメージしやすいのは洗濯機でしょうか。
あなたは今全自動洗濯機の前に立っていて、洗濯物(プログラミングにおける引数)を入れて、ボタンを押します。そうすると、洗い終わった洗濯物(プログラミングにおける戻り値)が返ってきます。あなたは全自動洗濯機のしている作業がよく分からなくても、洗濯物(引数)を入れてボタン(プログラミングを実行)を押せば、洗い終わった洗濯物(戻り値)が返ってきますよね。
この例における全自動洗濯機が関数の役割です。なんとなくイメージができたでしょうか。関数やこれから扱うクラスの概念で、必要になってくるのは引数と戻り値という考え方です。基本的には、上の洗濯機の例で引数と戻り値を考えてくれて構いません。
基本的には引数を関数に処理させると、戻り値が返ってきます。その戻り値はprint()で表示させるか、他の変数に代入します。
または、戻り値が返ってこず、引数をその場で変更することもあります。このその場で変更することをインプレイスで変更すると言ったりもします。
なんだかよくわからなくなってきましたね。実際に例を見ていきましょう。
まずは関数の構文からです。
def 関数の名前(引数1, 引数2, ...):
処理1
処理2
ここで初めて出て来るのが、pythonにおいて非常に重要な役割をもつインデント(空白)です。この場合においては、関数名(): の次の行の最初に空白が4つ入っています(tabであれば一つ分)。そして、関数が続く限りその最初の行の空白4つ分が強制されます。pythonは空白4つ分(次から略してインデントといいます)で関数が続くかどうか判断しているのです。実は厳密には空白は4つでなくてもプログラムは動くんですが、なんか4つにすることに慣習で決まっているらしいです。はい。4つで覚えましょう。
では実際に具体例をみて確認していきましょう。
テキストエディタ function.py
def multiplication(x,y):
return x*y
con=multiplication(4,5)
print(con)
python3 functinon.py
20
それでは解説していきます。まず、関数で戻り値を指定するときはreturnを使用します。
rerurn 戻り値
関数には必ずしもrerurnが必要なわけではありません。もしもrerturnがなければ、関数の戻り値としてNoneが返されます。これは以前の記事データ型で扱った、Nonetype型のデータ型のNoneで、値がないことを示します。
この関数の場合、戻り値はx*yなので、今回はその戻り値を変数conに代入しています。その後で、print関数を用いてconの中の値を参照しています。関数の引数として4,5を与えたので、その時点でxには4が、yには5が代入されます。そのため、戻り値であるx*yは
4*5となり、20が戻り値となります。そのため、print関数を変数conに対して用いると、値20が表示されるのです。
これで関数の記事は終わりです。お疲れさまでした。