3.関数を使ってみよう
プログラムを簡潔にスッキリ作るために覚えておかないとならないテクニックの一つに関数があります.関数を活用することでコード内の異なる箇所や異なるコードで同じ処理が簡単に実行できるようになります.関数を覚えておかないと同じような処理が至る所で量産され,コード量も長くなります.ここでは,普段から使っているExcelやPythonに標準装備されている関数を例に関数の構成要素や使い方を覚えます.更に自分で関数を作成し,それを呼び出す方法を学びます.
3-1.ExcelのSUMも関数だ
Pythonの関数と聞いて身構える必要はありません.何せ普段から同じものを使っています.それはExcelのSUMなどが全く同じ関数だからです.
ExcelのSUMをイメージしてみましょう.= SUMを入力→( )内にセルの範囲を指定→合計値が出力されるという流れをこれまで何回も行なってきたはずです.ExcelのSUM概念は以下の通りです.
合計値 = SUM(対象範囲)
上の式をPythonの関数風に概念を定式化してみましょう.
出力 = SUM(配列)
より一層概念化すると,
戻り値 = 関数(&ruby(ひきすう){引数})
となります.全ての関数がこのルールに基本的に則っています.関数を理解すると戻り値や引数がない関数を作るようになるかもしれませんが,それはまた今度にしましょう.
ExcelのSUMは結局VBAの一部です.SUMもVBAというプログラムの関数として機能しています. SUMの中身は対象範囲(セル)の一つ一つを最初から最後まで順次加算していくというものです.これをPython的に書くと以下のようになります.
SUM_1.py
- Array = [1,2,3,4,5,6,7,8,9,10]
- j = 0
- for i in Array:
- j += i
- Print(j)
-
この合計値jが最終的に関数から欲しい値です.しかし,実際には扱いたい配列名がArrayではないかもしれません.前にあったようなJAPANやUSAという名前の配列かもしれません.これでは名前の違う配列を対象とする度にArrayという名前をJAPANなどに逐次書き換えるのは面倒です.それを便利にするのが関数の役割の一つです.例えば,SUM関数をPythonで作成すると以下のようになります.
SUM_2.py
def SUM(arg)
j = 0
for i in arg:
j += i
return j
ここで,defというのは関数の宣言,argは引数,returnというのは戻り値をそれぞれ意味しています.
このSUM関数をPython内で起動してみましょう.Python内で起動するにはSUM_2.pyにコードを書き加えます.関数の基本構造は式(3)より,戻り値 = 関数(引数)なので以下のように書き加えられます.
SUM_2.py
- def SUM(arg):
- j = 0
- for i in arg:
- j += i
- return j
-
- Japan = [1,56,78,96,23]
- Total = SUM(Japan)
- print(Total)
-
この時の出力は254であるはずです.ここで気づくのは,SUM関数で指定した引数のargや戻り値のjが9行目で実際に使う時にはそれぞれTotalとJapanに置き換わっている点です.つまり,関数の名前と引数,戻り値の数さえ合っていれば引数や戻り値の名前が違っても良いということです.これにより,合計したい配列や関数によって出力したい値の変数名が変わっても柔軟に対応できるExcelのようなSUM関数が出来上がる訳です.
実のところ,SUM関数はPythonの基本関数として使えるようになっています.従って,import文もなく単純にSUM( )と打てば指定した配列の合計値を計算できるようになっています.