今回は、関数について解説していきます。
関数とは何か? なぜ関数は必要なのか?
また、関数の書き方や使い方など、詳しく解説していきます。
関数とは
関数とは?
関数とは、いろいろな「処理」をまとめて1つにしたものになります。
ある値を渡すと「処理」を行い、ある値を返すという動きをします。
また、作成したひとまとまりのロジックに名前を付けて、再利用することもできます。
関数は必要なのか?
関数を使うことで、複雑な流れを1つのパターンとして登録させておくことができます。
これは例えばの話ですが、「掃除、洗濯、炊事」という仕事を「お手伝いさん」という関数を作って登録しておくと、毎回、「掃除、洗濯、炊事」の内容を最初から説明するよりも、
使いたいときに「お手伝いさん」という関数を入れることで、非常に便利な作業になるのです。
関数を使わないと、大変長く読みにくいコードになりますから、関数は必ず必要です。
また、関数を使うメリットをまとめると3つあります。
- 1行でいろいろと使い回すことができる
- 同じものを2回書く必要がない
- 関数の使い方が分かれば、中のコードを理解していなくてもよい
あなたも、ぜひ、関数を使いこなせるようになりましょう。
関数の種類
関数の種類
関数には2種類あり、自分で作る関数と、Python言語で、最初から用意してくれている関数です。
自分で作る関数を「ユーザー定義関数」といい、Python言語が最初から用意してくれている関数のことを「組み込み関数」といいます。
関数の呼び出し方は、ユーザー定義関数、組み込み関数とも同じです。
初心者でもよく使う、組み込み関数は「print関数」です。
「print関数」は、たった1行で変数の中身を出力してくれますが、実際に関数の中身は何行ものコードが書かれています。
もしも「print関数」がなかったら、変数の中身を出力させるだけでも、毎回大変な作業になってしまいます。
両方の関数を上手に扱えるようになると、他人がコードを見ても理解してもらいやすくなりますから、人からも評価されるようになります。
関数を定義する
関数を定義する
関数を作ることを「関数を定義する」といいます。
Pythonでは関数の定義に「def」を使います。
def 関数名():
「def」の後に関数の名前である関数名を書き、「()」丸括弧を書きます。
そして、その丸括弧の中に記述するものを「引数」といいます。
関数は、引数を受け取ることができて、その引数は関数内で使うことができます。
このようにすると、関数に引数の値を渡したり、受け取ったりすることで関数のできる処理の幅が広がります。
また、引数は必ず必要ではなく、省略することもできることや、複数渡すこともできるので、必要な分だけカンマで区切って入れるようにします。
関数は、引数を受け取ることができるだけでなく、処理結果を返すこともできます。
これを「戻り値」といいます。
関数の仕様によっては、引数や「戻り値」の省略もできます。
Pythonの関数は、「戻り値」がないときは「None」という、値がない意味を返します。
また、return文を使うことで、「戻り値」として関数の外に値を返すことができます。
引数なしの関数
引数なしの関数
引数なしの関数の場合、
- defを書きます。
- 関数名を書きます。
- 引数がない場合は、丸括弧のみを書きます。
- コロンを書きます。
- 次の行にインデントをしてから実行する処理を書きます。
def 関数():
(実行する処理)
これで関数を定義できます。
引数ありの関数
引数ありの関数
引数ありの関数の場合、
- defを書きます。
- 関数名を書きます。
- 丸括弧を書き、中に引数を入れます。
- コロンを書きます。
- 次の行にインデントをしてから実行する処理を書きます。
def 関数(引数):
(実行する処理)
これで関数を定義できます。
関数の呼び出し方
関数の呼び出し方
Python関数の基本的な呼び出し方は、下記を参考にしてください。
戻り値のある関数の呼び出し方
変数名 = 関数名(引数1, 引数2, …)
戻り値のない関数の呼び出し方
関数名(引数1, 引数2, …)
引数のない関数の呼び出し方
変数名 = 関数名()
関数を変数へ代入する
関数を変数へ代入する
Pythonは、関数を変数に代入することもできます。
定義した関数名を、そのまま変数に代入するだけで簡単にできます。
- 変数名を書きます。
- 変数に値を代入します。
- 変数のあとに丸括弧を書き、値を渡します。
変数 = 値
変数(値)
引数が複数ある関数
引数が複数ある関数
引数を2つ使った関数の場合、
- defを書きます。
- 関数名を書きます。
- 丸括弧を書き、中に(引数,引数)を入れます。
- コロンを書きます。
- 次の行にインデントをしてから実行する処理を書きます。
def 関数(引数,引数):
(実行する処理)
これで関数を定義できます。
return文
return文
関数の結果は、return文を使って返すことができます。
- defを書きます。
- 関数名を書きます。
- 丸括弧を書き、中に引数を入れます。
- コロンを書きます。
- 次の行にインデントをしてから、returnを書きます。
- 丸括弧を書き、中に引数を入れます。
def 関数(引数):
return(引数)
まとめ: 関数サンプルコード
関数サンプルコード
最後に、まとめとして関数サンプルコードを書いてみます。
「,」カンマを使って複数の戻り値を指定するサンプルです。
def calc_func(a, b):
return a+b, a-b , a*b , a/b
answer = calc_func(2, 10,)
print(answer)
# 出力結果: (12, -8, 20, 0.2)
(def文の中における “return” は1つだけなので、戻り値はタプルで返ってきます。)