こんにちは、ECF Tech
ブログ担当 Michiharu.Tです。
Pythonでプログラミングを楽しく始めるためのプチ講座を連載しています。第1回からの内容は下をご参考ください。
本シリーズでは、動作環境としてGoogle Colaboratoryをベースに説明を行なっています。
Google Colaboratoryは、Googleアカウントがあれば簡単に始められます。使い方は下記よりご確認ください。基本的な使い方がわかれば、すぐにでもPythonプログラミングを始めることができます。
対象読者
- プログラミングを始めてみたいと思っている方
- パソコンでインターネットやWord・Excelの基本操作ができる方
- 数学の授業にプログラミングを取り入れたいと考えている先生方
本記事の用語説明
本記事では、Google Colaboratory内の下の部分を次のように呼んでいます。
上のプログラムエリアの部分は、次のように(コード)と(実行結果)を1セットにして示しています。
(コード)
print('Hello')
(実行結果)
Hello
学習テーマ
前回Pythonに元々用意されている関数を使いましたが、今回は「関数をつくる」がテーマです。
関数とは、プログラムをひとまとまりにして、何度も使える道具を作るものです。各プログラム例では「関数をつくる」と「関数をつかう」のコメントをつけて解説しています。
やってみよう
ではここから実際に動かしながら見ていきます。
まずは3種類のあいさつをするだけの関数を作ってみます。
プログラム1
(コード)
#関数をつくる def hello(): print('こんにちは') print('Hello') print('アロハ~') #関数をつかう hello() hello()
(実行結果)
こんにちは Hello アロハ~ こんにちは Hello アロハ~
解説
関数のつくり方は下のようになります。
def 関数名(仮引数): #字下げされている部分は関数とみなされる
関数は定義部分と処理部分に分かれます。定義部分はdef 関数名(仮引数):
です。
関数名は好きな名前をつけられます。helloがそれにあたります。関数名の後ろの(仮引数)
は次のプログラム例で説明します。
関数の処理部分を表すには字下げを使います。プログラム例に色をつけて示すと下のようになります。
つづいて関数をつかう部分です。関数のつかい方は下のようになります。
関数名()
プログラム例ではhello()
が2回書かれています。関数helloは3つのあいさつをするプログラムですので、2回実行すると実行結果のようになります。
プログラム2
(コード)
#関数をつくる def sayName(name): print('こんにちは、' + name + 'さん') #関数をつかう sayName('タロウ') sayName('ハナコ')
(実行結果)
こんにちは、タロウさん こんにちは、ハナコさん
解説
関数のつくり方を再度掲載します。
def 関数名(仮引数): #字下げされている部分は関数とみなされる
仮引数は関数が値を受けとるための変数で、その関数内だけで使えます。
プログラム例では仮引数の部分がname
となっており、その次の行で使われています。
仮引数は値を受けとるための変数なので、値をわたす必要があります。値をわたすのは関数をつかうときです。
プログラム中のsayName('タロウ')
が実行されたときのイメージを下に示します。
よって、この場合は「こんにちは、タロウさん」と表示されます。
プログラム3
(コード)
#関数をつくる def tasizan(a,b): print(a+b) #関数をつかう tasizan(5,7) tasizan(10,8)
(実行結果)
12 18
解説
仮引数を2つ使って、2つの値を足し算して表示するプログラムを作りました。
仮引数は複数持たせることができます。複数もたせたい場合は,
を使います。プログラム例ではa
とb
という2つの仮引数があります。
仮引数が2つあるので、関数をつかう時も値を2つ渡す必要があります。例ではtasizan(5,7)
などのように、2つの数値を渡していることがわかります。
プログラム4
(コード)
#関数をつくる def tasizan(a,b): return a+b #関数をつかう ans = tasizan(6,7) print(ans)
(実行結果)
13
解説
プログラム3と比べてみましょう。3行目のprint(a+b)
がreturn a+b
となっていることがわかります。
return 値
は値を返す命令です。また、返された値を戻り値といいます。値を返すとはどういうことなのか、下のイメージをご覧ください。
ここでメインのプログラムとは、実行ボタンを押したときに動き出す関数以外の部分です。関数tasizanは、def~
で作った部分です。
関数とのやりとりはよく人とのやりとりに例えられます。メインのプログラムは指示をする人、関数は指示を受ける人です。
指示をする時に渡す値が引数です。関数tasizanは2つの値をもらって処理をします。処理が終わったら、その結果を指示した人に返します。この値が戻り値です。
戻り値が返されたら、メインのプログラムはその値を受け取る必要があります。そのため、プログラム例では
ans = tasizan(6,7)
と記述して、変数ansで戻り値を受け取ります。
このようなイメージでとらえると、関数を「つかう」という表現よりは、「呼び出す」がイメージとして近いことがわかるのではないでしょうか。以降は「呼び出す」という言葉を用いていくことにします。
プログラム5
引数に使える値は数値や文字列だけではありません。次は引数にリストを使う例を見てみます。
(コード)
#関数をつくる def listSum(list): ret = 0 for i in list: ret = ret + i return ret #関数を呼び出す list = [1,2,3,4,5] ans = listSum(list) print(ans)
(実行結果)
15
listSum関数は、引数で与えられたリストの内容を全部足し、その答えを返す関数です。
リストの内容を1つ1つforループによってとりだし、retに加算し続けます。関数部分について図を示します。
つづいて呼び出し部分です。下に再掲します。
list = [1,2,3,4,5] ans = listSum(list) print(ans)
各行の処理は次のようになります。
- 1~5までの値が入ったリストを作り、listに代入
- listSum関数を呼び出す。引数にはlistをわたす。戻り値はansに入れる
- ansを表示
おわりに
本日はここまでといたします。最後までご覧いただきありがとうございました。関数を作って、呼び出すという感覚がつかめていたら良いと思います。関数の作り方はまだまだ奥が深く、今回説明できていない要素も多くあります。のちの記事で徐々にその本質を見て行けたらと思います。これからもよろしくお願いします。
合同会社イー・シー・エフでは、子ども向けプログラミングなどの教育講座を実施しています。プログラミング教室の案内や教育教材の情報、また関連するご相談・問い合わせにつきましては下記よりご確認ください。