
関数を使用すれば、多様な処理をまとめることができます。
関数はプログラミングの中でも、必須の知識ですので、知っていきましょう!
以下の本文では、
Pythonの関数の基礎(関数とは何か)
関数の定義、呼び出しの方法
引数や戻り値について
などなどを具体的なソースコードを用いて解説していきます。
Pythonの関数ってそもそもなに?
関数って当たり前のように出てくるけど、果たして何なのか良くわからない(´_ゝ`)
という人もいると思います。私自身、その一人でした!!!
教科書的には、関数とは、「引数と呼ばれるデータを受け取り、定められたの処理を実行して結果を返す一連の命令群」と書かれています。
・・・私には、なんのこっちゃ理解できませんでした。
イメージを図にしたので、見ていきましょう!
このように、関数に
- データを入れる
- 関数がそのデータに対して処理を行う
- 処理結果を吐き出す
ということです。もしかしたら少しはイメージが付いてきた人もいると思いますが、
もう少しわかりやすく身近な洗濯機を例に考えてみましょう!
洗濯機の機能は大まかに、
- 服を入れて、何分間洗濯するか指定する
- 洗濯機が、入れた服を洗濯する
- 指定時間になったら、洗濯をやめる
という流れになっています。
洗濯機のように、色々な処理が一つの機能としてまとまっているものをプログラミングでは、「関数」と言うんです(‘◇’)ゞ
Python def関数の定義の方法
目的に合った関数がPythonに用意されてない時は、自分で関数を作ってしまえばいいんです。Pythonでは、def文を使うことでオリジナルの関数を作ることができます。
def文の書き方は、以下のようにソースコードを記述します。
def 関数名(): 処理する内容1 処理する内容2 ・・・・
自分で関数を作ることを、関数の定義と言います。関数の定義に使う、「def」、”定義する”という意味の英語(define)からきています。
関数名は好き勝手につけることができますが、その関数がどんな処理をするかがわかるような関数名にすると理解しやすいでしょう(´_ゝ`)
関数の定義で気を付けるところと言えば、処理する内容の部分を半角スペース4つ分インデント(字下げ)することです。(プログラミングの世界ではコードを字下げすることをインデントと呼んでいます。)インデントした部分がひとまとまりのコードとなり、関数を呼び出した時にまとめて実行されます。
このように、字下げされた部分を1つのコードのまとまりとして扱う仕組みのことをブロックと言います。
Python関数の呼び出しとは?
では、実際に「def」で関数を定義してみましょう。
関数を使うことを「関数を呼び出す」といいます。
以下のソースコードでは、fridge(冷蔵庫)という関数を定義して関数を呼び出します。
def fridge(): print("時間を指定します") print("洗濯します") print("洗濯するのをやめます") ・・・ >>> >>>fridge()
出力結果
時間を指定します 洗濯します 洗濯するのをやめます
関数の呼び出し方は思いのほか簡単で、呼び出したい関数の後に()をつけるだけです。
上記のソースコードでは、7行目でfridgeという関数を呼び出しているということです。
関数を呼び出すと、関数で定義した処理が実行できていることが確認できます。
関数を定義すれば、あとは関数を呼び出すだけで複数の処理を何度も実行することができて非常に便利です。
複数の処理を何度も使う時は、関数にまとめることによってソースコードの量が少なくなり、読みやすいプログラムになります。
プログラミング言語Pythonの関数における引数とは?
冷蔵庫では、手洗いモードや、スピードモード、毛布モードなど、洗濯するためのモードがあると思います。
関数では、モードに応じて処理を変更するようにすることができます。説明だけだとわかりにくいと思うので、実際のソースコードを見てみましょう。
def fridge(mode): if (mode == "手洗い"): print("手洗いモードで洗います") elif(mode == "スピード"): print("スピードモードで洗います") else: print("毛布モード洗います") ・・・ >>> >>>fridge("手洗い")
※プログラミング言語pythonの「if文」がわからない人は、python if文について解説した記事を参考にして下さい。
出力結果
手洗いモードで洗います
関数には、引数という概念があるのです。
引数とは、上記のソースコードのように、関数を呼び出すとき(10行目)にデータ(今回は「”手洗い”」)を使って処理してください、と関数に受けわたす値のことを指します。
上記のソースコードでは、1行目で
def fridge(mode):
と定義しています。このfridgeという関数が呼び出されるときに渡されてくるデータを入れる変数が「mode」ということですね(´_ゝ`)
そしては、ソースコード10行目で
fridge("手洗い")
としてfridge関数を呼び出しているので、引数にある「”手洗い”」が変数modeに代入されます。
そして、if文により、「mode」が「”手洗い”」の時に実行される処理が出力されたということです。
Pythonの関数における戻り値とは?return文について
関数における戻り値について話していきます(‘◇’)ゞ
戻り値とは、簡単に説明すると、データを返してくれることです。(うーん、難しい。でも、辛抱してイメージしてみてください。)
関数の中でreturn文を使います。
return文に処理が到達すると、その関数の実行は終わり、呼び出し元に制御が戻ります。
また、return文でデータを指定していると、呼び出し元にそのデータを返します。
通常、何らかの処理を関数にまとめるので、関数の実行結果を呼び出し元に通知するために、return文を用います。
文字だけでは、やっぱり理解しにくいと思うので、実際にサンプルコードを見て勉強していきましょう!
実際にreturn文を使って戻り値を理解しよう
サンプルコード
def number(x, y): return x + y z = number(1, 2) print(z) def number_fol(x, y): return (x + y, x * y) z1, z2 = number_fol(1, 2) print(z1, z2)
実行結果
3 3 2
サンプルコードの、1行目でnumber関数を定義します。この関数はxとyの2つの引数をとります。
2行目でreturn文を用い、xとyの加算結果を返します。
4行目でnumber関数を呼び出します。引数で指定した1と2を加算した結果がreturnされるので、zは3になります。
7行目でnumber_fol関数を定義します。
8行目のように複数のデータを返すこともできます。
実行結果の、1行目でnumber_fol関数を呼び出します。1と2の加算、乗算結果がreturnされるので、z0は3、z1は2になります。
戻り値の使い方のイメージができましたか?
完璧な使い方よりも、まず初めにどんなものなのかイメージすることが大切です。
まとめ
今回は、関数の使い方、戻り値return、引数についての説明をしてきました。
関数とは、
処理をひとまとまりにしたもの
引数は処理に与える材料
そして出来上がったものをreturnで戻り値として受け取る
でしたね。
関数の定義の仕方と呼び出し方、関数における引数や戻り値はどれも関数の基本で、尚且つ!
とても重要なものなので繰り返し読み、実際に自分で試しにコードをうってみるといいでしょう。
プログラミング初心者向け動画!【エコーズラインプログラミング】