Pythonのユーザ定義関数を「y=2x+1」を使って解説する
はじめに
以前ブログで「VBAのFunctionプロシージャを「y=2x+1」を使って解説する」という記事を書きました。
今回はそのPython版です。
VBAの記事のときも書いたのですが、以前は「自分で関数を作れる」ということがどういうことなのか、正直よくわかりませんでした。「引数」と「戻り値」のことも、解説を読んでも理解しにくかったです。
そんなときにユーザ定義関数を一次関数で表したら、なんとなくわかりやすくなった気がしたので、Pythonでも書いてみようと思いました。
ちなみに一次関数とは、以下のように定義されています。
a、bを定数とするときy=ax+b(a≠0)で表される関数
※コトバンクより抜粋 https://kotobank.jp/word/%E4%B8%80%E6%AC%A1%E9%96%A2%E6%95%B0-433347
この記事のタイトルの一部の「y=2x+1」は一次関数です。
◆目次◆
用語のおさらい
用語 | 意味 |
---|---|
ユーザ定義関数 | ユーザーが独自に定義した関数 |
引数 | 関数に渡す値 |
戻り値 | 関数から受け取る値 |
ユーザ定義関数のおさらい
Pythonのユーザ定義関数は以下のように作ります。
def 関数名(引数): 処理 return 戻り値
引数に値をいれて関数を呼び出したいときは、以下のようにな呼び出し用のスクリプトを作ります。
関数名(引数の値)
「y=2x+1」をユーザ定義関数で作る
では、さっそく「y=2x+1」をPythonのユーザ定義関数で書いてみます。今回は2種類の書き方を紹介します。
まずは1つ目のユーザ定義関数です。処理の部分に「y=2x+1」を書きます。
def linear_function(x): y = 2 * x + 1 return y
「linear_function(直訳:一次関数)」という関数名のユーザ定義関数を作ります。 行いたい処理は「y = 2 * x + 1」です。答えはyの値なので、変数yを戻り値にします。
呼び出し用のスクリプトは、例えば「x=2」の場合は、以下のように書きます。
linear_function(2)
2つ目のユーザ定義関数です。戻り値に処理を書きます。
def y(x): return 2 * x + 1
「y」という関数名のユーザ定義関数を作ります。
「2 * x + 1」の処理結果を戻り値とするので、「2 * x + 1」が戻り値となります。つまり「return 2 * x + 1」と書けばいいのです。
このような簡単な処理であれば、戻り値に、行いたい処理を設定してもいいと思います。
呼び出し用のスクリプトは、例えば「x=2」の場合は、以下のように書きます。
y(2)
さいごに
こうやって並べると、1つ目のユーザー定義関数の方がぱっと見でわかりやすいですね(「y = 2 * x + 1」がそのまま入っているので)。
1つ目の書き方だと、複雑な処理も設定できるので、個人的にはこちらの書き方をする場合が多いです。(もちろん、ケースバイケースですが)
このように一次関数で「引数はx、戻り値はy(または処理結果)」と考えていただくと、少しわかりやすくなるかもしれません。