Kの備忘録(仮)

Python、VBA、Excelを中心に記事を投稿

Pythonのユーザ定義関数を「y=2x+1」を使って解説する

はじめに

以前ブログで「VBAのFunctionプロシージャを「y=2x+1」を使って解説する」という記事を書きました。

lbibouroku.hatenablog.com

今回はその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(または処理結果)」と考えていただくと、少しわかりやすくなるかもしれません。