前回、「変数」について解説したときに「print」関数を少し紹介しましたが、
今回は関数について、詳しく解説していきます。
関数って何?
前回でも軽く紹介しましたが、「関数」というのは「何かしらの処理」をする便利な機能だと思ってください。
「何かしらの処理」というのは、前回の「print」関数を例えると、
- 変数の中身を表示する。
- 配列の中身を表示する。
- 文章を表示する。
などといった、情報を表示するための機能です。
スクリプトを書く上で、変数の中身を確認したい場面というのはよくある事なので、
頻繁に使う関数です。
では、他にはどのような関数があるのでしょうか。
- abs 絶対値を返す
- max 最大値を返す
- min 最小値を返す
- round 四捨五入をする
- などなど...
上記で紹介した関数は組み込み関数と言い、
Pythonが初めから用意してくれている関数です。
数字の処理に関する関数ばかりを紹介しましたが、
その他の機能を持つ関数もたくさんあります。
MODOでスクリプトを書く上で、
このような数字を処理する組み込み関数を使う機会は、ちょこちょこあります。
引数と戻り値
関数には「引数」を必要とするものや「戻り値」を返すものがあります。
少し難しく感じるでしょうか?
詳しく解説していきましょう。
引数とは
引数というのは「関数が処理をするために必要な情報」だと思ってください。
「print」関数について解説すると、
「print」関数は、変数の中身や文章を表示するための機能だと紹介しましたが、
「何を表示するのか?」という部分が引数だと思ってもらえるとよいです。
a = 1
print(a)
と書いたとします。
この場合、変数「a」の値を「print」関数で表示していますが、
変数「a」が引数となります。
※前回は「print c」と書いていましたが、今回の書き方「引数を()で囲む」のほうが正しいので、
以降はこのように書いていきます。
つまり、「print」関数は「表示したい内容を引数として指定」するルールがあるということになります。
・引数が必要かどうか?
・引数は、1個なのか2個なのか3個なのか?もっとなのか?
それは関数によって様々なので、ここで全てを紹介できませんが、
使いたい関数についてWEBで調べると、
・どのような機能の組み込み関数があるのか?
・関数によって、どのような引数が必要なのか?
・関数によって、引数は何個必要なのか?
は大抵わかります。
まとめ
・引数が1つでよい関数の場合
関数名(引数)
・引数が2つ必要な関数の場合
関数名(引数1, 引数2)
※引数が2つ以上の場合は「,」カンマで区切り、列挙します。
と記述することが一般的です。
戻り値
戻り値とは、関数が何かしらの処理を行った結果の値の事です。
一般的には変数に戻り値を代入して使用することが多いでしょう。
上記で紹介した「round」関数を例に、戻り値について解説していきます。
「round」関数は、引数に指定された値を指定した少数点の位で四捨五入した値を「戻り値」として返す関数です。
返すというのは、処理してほしい情報(引数)を関数に渡して、処理した結果を関数が返してくれるイメージです。
※例外として引数を必要とせずに、戻り値を返す関数も存在します。
round関数の書き方
round(四捨五入する値, 四捨五入する少数点の位)
となっています。
引数は2つ必要だということがわかります。
実際には、以下のように書きます。
round(1.26, 1)
この場合、1.26を小数点第1位で四捨五入します。
結果は「1.3」となるはずです。
この「1.3」が「戻り値」ということになります。
ただし上記のままだと、「戻り値」を受け取る入れ物、つまり「変数」がありません。
ですので、戻り値を受け取る変数を用意しましょう。
result = round(1.26, 1)
「result」という変数を宣言し、「round」関数の戻り値を「result」へ代入するようにできました。
さらに、
result = round(1.26, 1)
print(result)
として、変数「result」の中身を表示してみます。
スクリプトを実行して、
1.3と表示されれば成功です!
ちなみに、
print(round(1.26, 1))
として、変数を用意せず「round」関数の戻り値を「print」関数の引数として、
直接結果を表示することも可能です。
※関数Aの引数に、関数Bの戻り値をダイレクトに指定することも可能だという例です。
※関数の引数に関数を書くと、引数に指定されている関数から処理されます。
※一般的には変数に戻り値を代入しておいて、その値を使いまわす事が多いのですが、
このようにすることで、場合によっては無駄な変数の宣言をしなくて済むメリットがあります。
関数について、
引数・戻り値についての解説でした。