関数を作ってみよう
前々回に関数を学習した時は、Pythonに用意されているmax関数とmin関数を使ってみました。
今回は関数を自分で作っていきましょう!
関数を作ってみる
「関数」とは複数の処理をまとめておいて、任意の場所で呼び出せる機能でしたね。
まずは関数内でprint関数を呼び出すだけのCallPrint関数を作ってみたいと思います。
それでは前回作成したファイルを開いてください。
前回書いたコードが残っている場合はすべて消してください。
それでは以下のコードを入力してみてください。
def CallPrint(): print("関数が呼び出されました!") CallPrint() CallPrint() CallPrint()
最初の2行目が関数の作成部分です。
関数を作成することは、「関数を定義する」といいます。
関数の定義は、次の形式で記述します。
def 関数名(): 処理1 処理2 ...
今回の場合は関数名がCallPrint、処理はprint("関数が呼び出されました!")の部分です。
関数は定義しただけでは使われないので、別途関数を呼び出してあげる必要があります。
4行目からは作成したCallPrint関数を3回呼び出しています。
「F5」で実行するとしっかり3回print関数が呼び出されているのが分かります。
関数の処理を書く部分(例の場合は2行目)はスペース4文字を入れる必要があります。
この先頭のスペースを「インデント」と呼びます。
Pythonは関数の処理かどうかはこのインデントで管理しています。
CallPrintの定義を次のように変えてみましょう。
def CallPrint(): print("関数が呼び出されました!") print("これは関数で呼び出される処理ではありません!!")
実行してみるとわかりますが、上側のprint関数は3回呼び出されているのに対して
下側のprint関数は1回しか呼び出されていません。
これはCallPrint関数には上側のprint関数しか含まれていないということです。
関数に処理を書く際はインデントに注意しましょう!
引数、戻り値のある関数の作成
前に関数にはデータ(引数)を渡す機能と、データ(戻り値)を受け取る機能があるといいました。
今度は引数、戻り値があるバージョンを作っていきたいと思います。
引数に渡した数値を足して、戻り値で返してくれるAdd関数を作っていきます。
下のコードを入力してみましょう。
def Add(val1, val2): print("Add関数が呼び出されました!") result = val1 + val2 return result a = Add(3, 5) print(a) b = Add(10, 7) print(b) c = Add(a, b) print(c)
関数定義部分の意味は以下のようになっています。
1行目はVal1、Val2という2つの引数を持つAddという名前の関数を定義するという意味です。
2、3行目は関数の処理部分です。
2行目はprint関数を読んで、関数が使われたときに視覚的にわかりやすいようにしました。
3行目はresultという変数に、引数2つを足した値を入れています。
4行目は3行目で作ったresultという変数を戻り値として帰すように設定しています。
returnというのは関数を終了させる命令で、戻り値はreturnの後に書きます。
「F5」で実行すると以下のような結果になりました。
引数で渡した数値が加算されているのが分かると思います。
今回は引数と戻り値が両方ある関数を作りましたが、どちらかが無い関数も作成可能です。
まとめ
今回は関数の作り方を学習していきました。
これから関数はたくさん作ることになるため、難しいですが徐々に慣れていきましょう。
これでPython基本編は終わりです。
皆さんお疲れさまでした!!
次からはいよいよゲーム制作編です。
だんだん楽しくなってくるので、少しづつ頑張りましょう!