全1430文字
PR

プログラミングに興味を持った小学生のタケルくんは、詳しい知識を持つお父さんからPythonを教わることにしました。今回のテーマは「関数の定義」です。

(作画:森マサコ)
(作画:森マサコ)
[画像のクリックで拡大表示]

お父さん:これまで使ってきた「print」や「range」は、実は「関数」というものなんだ(図10-1)。関数というのは「値を受け取って、いろんな処理を行ったり値を返したりするもの」のことだよ。printだと受け取った値を表示していたよね。rangeは受け取った2つの値が示す範囲を返す関数なんだ。

図10-1●関数にはあらかじめ用意されているものと自分で作るものがある
図10-1●関数にはあらかじめ用意されているものと自分で作るものがある
[画像のクリックで拡大表示]

タケル:プログラミングで使える部品みたいなものなの?

お父さん:そのとおり。Pythonにはいろんな関数があらかじめ用意されていて、プログラムの中で自由に利用できるんだ。それだけじゃない。関数は自分で作ることもできるんだ。

タケル:自分で作れるの!

お父さん:うん。変数と同じように好きな名前の関数を作れるよ。作り方を説明するね。まず「def」と書く。これは、「定義する」という意味の英単語である「define」を略したものなんだ。次に関数名を書く。その次にはカッコの中に値を受け取る変数を書く。関数が受け取る値が1個なら1個の変数でOK。関数が受け取る値が2個なら2個の変数をカンマで区切って書くよ。この変数のことを「引数」(ひきすうと読む)と呼ぶ。if文やforループのときと同じように最後のコロンを忘れないでね。

タケル:覚えることが多くて大変だなあ。

お父さん:その下のインデントをつけた部分に「関数が呼び出されたときに行う処理」を書くよ。この中では、関数が受け取った値を引数の名前で利用できるんだ。例えば、xとyという2つの引数を持つ関数の場合、「x+y」とすると受け取った2つの数を足すことができる。関数が値を返す場合には、「return」の後に返す値を書く。

タケル:Pythonに最初から入ってる関数と自分で作った関数って、使い方が違ったりするの?

お父さん:まったく同じだよ。いったん自分で関数を定義したら、Pythonにあらかじめ用意されている関数と同じようにプログラムの中で利用できるんだ。