はじめに
今回のブログでは、第1回「プログラミングって何?」で触れた「関数」について解説していきます。プログラミング未経験や学び始めの方に読んでいただくことを前提として、つまづきやすい部分(実際に筆者が躓いた部分)や、関数の基本的な仕組み、プログラム上での使い方を述べていきます。
もくじ
- 関数ってなに?どうして必要?
- 関数の基本的なしくみ
- 関数を「定義」する
- 引数と返り値
- 関数を「呼び出し」て実行する
- プログラム上で使うときのパターン~状況に合わせて使う!~
- 引数と返り値どちらもない場合
- 引数あり、返り値なしの場合
- 引数なし、返り値ありの場合
- 引数、返り値どちらもある場合
- 関数を使うときの注意点
- おまけ
関数ってなに?どうして必要?
第1回「プログラミングって何?」では、「関数」はプログラム上での部品のようなもの、と説明しました。具体的にはどういったものなのでしょうか。
「関数」とは、「ひとまとまりの処理に名前をつけて、何度も呼び出して使えるようにしたもの」のことです。
プログラム上で何度も行われるような処理をまとめておき、必要なときに呼び出すことによって、行いたい処理があるたびに同じ文を書く必要がなくなります。関数を使うことでプログラムが見やすくなり、処理に間違いがある場合でも関数だけを修正すればよいため、とても便利です。
関数の基本のしくみ
これは使えそう!早く作りたい!!!
便利な関数の作り方・使い方ですが、プログラミング言語によって使用方法が少し違います。
今回はpythonというプログラミング言語での関数を解説しますが、基本的な仕組みは他の言語とそこまで変わらないので、参考にしていただけると幸いです。
関数をつくるとき、まずはdef 関数名():のかたちで書きます。
関数名の部分には、自由に名前を付けられますが、その関数で行うことが一目でわかるような名前にしておくと後で見やすいです。この記述のことを「関数の定義」といいます。変数の場合の「宣言」のようなものです。
この記述の下に行いたい処理を上から順に書いていきます。これで関数を作ることができました。関数をつくるだけでは中身の処理は実行されません。
作った関数を使用するためには呼び出すことが必要です。呼び出すときには 関数名() と書きます。この記述で関数のなかの処理を実行することができます。
プログラム上で使うときのパターン~状況に合わせて使う!~
上の記述では、引数と返り値がありません。自販機のイメージでいうお金とジュースがない!と思われますが、引数と返り値がない場合でも関数を作成し、実行することができます。では、関数の引数や返り値はどのように使うのでしょうか。例を出してそれぞれ解説してみます。
①引数も返り値もない場合
例にprint()という処理を使ってみます。printとは,ざっくり言うと引数内のものを表示させる機能です(これも関数の一種ですが、あとで記述します)。
def hello_print(): ←関数の「定義」 この場合hello_printという名前をつけています。
print(“ハロー!”) ←関数のなかに、まとめたい処理を上から順に書く
~~~~~~~~~~~~~
hello_print() ←関数の「呼び出し」
hello_print() という記述をすると、この名前の関数が実行されます。
この場合関数内に書かれたprint(“ハロー!”)が実行されるので、ハロー!と表示されます。
行いたい処理が関数の中で完結する場合、引数と返り値は必要ありません。pythonにおける関数の最小限の形ですが、あまり使用頻度は高くありません。
②引数あり、返り値なしの場合
引数とは、関数に渡す値のことです(カッコの中に書きます)。この値によって、関数の処理に必要なデータを、呼び出すときに渡すことができます。関数の外側からの値によって別の結果が出したいときに使用します。
③引数なし、返り値ありの場合
関数を呼び出したあと、何か値を返してほしい場合はreturnで返り値を指定します。
返り値ありの関数を呼び出すと、関数内の処理が実行され、値が返されます。
プログラムのなかで、関数の処理結果の値を利用する場合などは、返り値ありの関数を作成することが多いです。
④引数あり、返り値ありの場合
関数の外から値を渡す→値によって結果が変わる処理をする→処理の結果をプログラム内の別の場所で使う場合、この形を用いることが多いです。プログラムでも一番使用頻度が高いです。
引数や返り値は複数指定することもできます。引数、返り値をどのように設定するかは、全体のプログラムの流れを逆算して、欲しい部品は何か?と考えると判断することができると思います。
関数を使うときの注意点
・呼び出しより先に定義する
Pythonの場合、上から命令文を読み込んでいくため、関数を先に定義してから呼び出しを行わないとエラーになってしまいます。
・関数を定義するときの引数、返り値と呼び出すときの引数、返り値の数は同じにする
関数を定義するとき、呼び出すときはそれぞれ対応する引数と返り値の数にしないとエラーになってしまいます。
おまけ ~pythonには最初から使える特定の関数がある~
ここまでは自分でつくる関数について説明しましたが、pythonには組み込み関数という、自分で定義しなくても最初から使える関数が備わっています。説明で使用したprint()も、pythonに最初から備わっている関数です(実際に、定義しなくても使えています)。
組み込み関数の一例
print()
引数で受け取ったものを表示する
print(“happy”)
「happy」が表示される
int()
引数の数値を整数にできる
s=int(10.1)
sは10
len()
引数の文字列など、要素の数を返す
s=len(“ABC”)
sは3
Print()以外にも複数このような組み込み関数があるので、気になった方は調べてみてください。
まとめ
「関数」とは「ひとまとまりの処理に名前をつけて、何度も呼び出して使えるようにしたもの」のです。
プログラム上で何度も行われるような処理をまとめておき、必要なときに呼び出すことによって、必要な処理を何度も書く必要がなくなる便利なものです。
「関数」はまず名前をつけて定義し、そのあと呼び出すことで中身の処理を実行することができます。何度でも呼び出しは可能です。
関数には、関数に値を与える引数と、関数の中身の処理の結果を返す返り値を設定することができます。これらは、プログラム上で必要な状況から逆算して「この関数は何のために作るのか?」を意識すると混乱が少ないです。
プログラムの全体の部品として関数をうまく使えるととても便利になります。ぜひ使ってみてください!
コメント