関数とは複数の処理をまとめて名前を付けたものです。関数は自分で作ることもできますが、この記事ではまず関数の概念と使い方のみを見ていきましょう。
目次
関数とは
関数とはいわば処理のかたまりに名前をつけたもので、長いコードを分割して整理することができる機能です。
複数の処理を1つの関数として定義してあげることで、関数名1つで同じ処理を何度でも呼び出すことができます。
例えば次のコードは、xとyという2つの数字の絶対値を比較してxの方が大きければTrueを、xの方が小さければFalseを表示するプログラムです。
x = 5 y = -10 # 絶対値を取得 if(x<0): x = x * -1 if(y<0): y = y * -1 print(x > y)
このコードでは『xとyの絶対値を得る』ために『対象の変数が0よりも小さいかどうかを判定し、小さい場合は-1を掛ける』というほぼ同じ処理を2回記述しています。
『絶対値を得る』ための関数はPythonにあらかじめ用意されているため、それを用いて記述してみましょう。
先ほどのコードを関数を使って書き直すと次のようになります。
x = 5 y = -10 # 絶対値を取得 x = abs(x) y = abs(y) print(x > y)
コードの一部がabs関数に置き換わったことで短く見やすくなったのがわかります。
今回の例ではもともとのコードが短く、同じ処理を使ったのも2回だったためそれほどありがたみは感じられないかもしれませんが、1つの結果を得るために複雑な処理をしたり、5回10回と繰り返す回数が多くなってくると関数を使うことによる恩恵は大きくなります。
また、関数で処理をまとめておけばその部分にバグがあったり仕様変更でコードを書き直さなくてはならなくなった場合も1か所を修正するだけで済みます。
組み込み関数
Pythonには幅広い用途に使える関数があらかじめ組み込まれています。
例えばこれまで何気なく使ってきたprint、input、rangeなども関数の1つです。こういったプログラム言語にあらかじめ組み込まれている関数を組み込み関数といいます。
組み込み関数の一覧と詳細はPythonの公式ドキュメントに載っていますのでチェックしてみてください。
https://docs.python.org/ja/3/library/functions.html
引数と戻り値
関数に与える入力値のことを引数(ひきすう)といいます。
例えば次のようなコードがあったとします。
print("hello world")
このprintというのが関数名で、カッコのなかに記述されている”hello world”という文字列の値が引数です。
引数は複数与えることもできます。例えばrange関数には開始、終了、ステップの値を与えることができます。
range(開始, 終了, ステップ)
このように複数の引数が与えられている場合、左から第1引数、第2引数、第3引数と呼びます。
関数の中で処理された値は戻り値(返り値)として返され、それを変数などに代入することができます。
例えば次のコードのinput関数ではキーボードから入力された値の文字列が戻り値となり、その後変数に代入されます。
text = input()