Pythonの 関数の定義、これから始めようとする初心者向けに分かりやすく解説|Python入門(9)

Python
この記事は約5分で読めます。

はじめに

 前回のPython入門(8)では、PPythonのfor 文による繰り返し処理について学びました。

 Python入門の第九弾として、Pythonの関数の定義について紹介します。

  この記事を読むと次の疑問について知ることができます。

 それでは、Pythonの関数の定義をこれから始めようとする初心者向けに分かりやすく解説していきます。

Pythonの関数とは?

 Pythonに限らず、他のプログラム言語でも同様に「ある値を関数に渡すと、関数内で処理を実施してある値を返すと言う処理をする定義」のことを関数と言います。

 具体的な例として、円の半径を渡して、円の面積を求めるなども関数ですし、また、ある買い物をする際の品物の個数、価格、消費税を渡して、合計の金額を計算するなども関数として利用できます。

 このように関数を用いることにより、何度もプログラムのコード内ででてくる同じ処理を関数として定義することにより、プログラムのコードを簡単化でき、分かり易いプログラムコードにすることができます。

 関数を大きく分けると2つに分類することができます。

組み込み関数
ユーザー定義関数

組み込み関数

 組み込み関数は、Pythonが元から持っている関数でその関数名を書くだけで利用できます。

 代表的な関数の例としてprint()関数があります。

 この関数は、print(変数)とした場合には、パソコン画面上に変数を出力する関数となり、プログラムの検証などでは良く利用します。

 組み込み関数は、Pythonのバージョンによって多少の違いはありますが、Python 3.10.4での組み込み関数ではアルファベット順に並べられて見ることができます。

ユーザー定義関数

 ユーザー定義関数は、あなたがプログラム内で定義した関数を言います。

 ユーザー関数を定義したプログラムコード内の後では、どこででも何度でもユーザー定義関数を呼び出して利用することができます。

 したがって、同じ処理を繰り返しするような処理の場合は、ユーザー定義関数を定義して利用するするようにしましょう。

 そうすることにより、プログラムを簡潔にし読み易くしますし、プログラムの変更をするような場合に変更が楽になります。

関数の定義と呼び出し

 関数の定義は、次のようになります。

def 関数名(引数1,引数2,…):
    処理
    return 戻り値

関数名(引数1,引数2,…)

関数を定義する上で注意すること

  1. def 文の後に忘れずに「:」を入れること
  2. def 文以下の処理部分は、4文字分字下げすること
  3. 関数名には、Pythonの変数名と同様な付け方に従うこと
    • 使用できる文字は a ~ z 、 A ~ Z 、 0 ~ 9 、アンダーバー(_)、漢字などが使用可能
    • 関数の先頭文字には数字を使うことは不可、また、アンダーバー(_)を利用しな名前はは、Pythonでは特殊な意味を持つ場合があるので、できる限り避けること
    • Pythonの予約後は使用不可
  4. 関数の引数は、なくともよいが、ある場合は「,」で区切って「()」内に並べて使用
  5. return文はなくともよいが、関数内の処理の結果を返したい場合に使用

 ここで簡単な 関数の例を紹介しましょう。

 半径(r)を引数とした円の面積を求める関数を定義し、定義した円の面積をreturn文で返し、その面積を画面出力 print() てみましょう。

関数の引数

 関数の引数の取り方には大きく分類すると2種類あります。

  • 位置引数
  • キーワード引数

位置引数

 関数内に書いた引数の順番に関数の処理内で値が渡されて処理される場合です。

 例として、三角形、四角形、円の面積を求めるのに次のような関数を作ってみました。

 引数として3つを使い、一つ目の引数に面積の図形の種類、2つ目の引数が面積を求める1つ目の数値(例えば、三角形ならば、底辺の長さ)、そして最後の3つ目の引数に面積を求める2つ目の数値(例えば、三角形ならば、高さ)を入力するようにします。

 a は図形の種類になりますので、if文で面積を求める種類を分類し、それぞれで面積 s を求め、最後にreturn で面積 s を戻り値としています。

 円の面積には、3番目の引数を使いませんが、何でも良いのでデータを入れる必要があり、ここでは、文字列データとして ’データなし’を入れています。

キーワード引数

 キーワード引数は、引数 = 値のように指定して、関数を使いますが、この場合は引数の順番は任意にできます。

 例えば、上述の関数をキーワード引数で指定してやると次のようになります。

 ここで注意してもらいたいことは、三番目の円の面積で引数 c =100としていますが、関数の定義で引数 c を使っていますので、c を入れる必要があります。

 しかし、関数の定義で円の面積では c を利用しませんので、そのような場合は、c として何でも良いので値を指定してやる必要があります。

 あと、位置引数とキーワード引数を混在して利用することはできませんので注意してください。

デフォルト引数 

 関数の定義の際に引数を省略した場合に使うデフォルトの値を指定できます。

 ただし、引数が複数の場合は最後の引数のみに利用できます。

 途中の引数にデフォルト引数を指定するとエラーとなります。 

グローバル変数とローカル変数

 関数内で用いられる変数をローカル変数と呼び、関数内のみに適用される変数です。

 一方、関数の外で利用される変数はグローバル変数と呼び、その場合の変数はコード内であればどこでも参照ができます。

 上述のPythonのプログラムは消費税をグローバル変数で定義しているために、後で再度定義し直せば、その再定義した消費税で関数が計算されます。

 しかし、消費税が関数内(ローカル変数)で定義されていると、その値は関数内で定義した値に固定され、前にグローバル変数として定義した消費税の値が出力されますが、価格はローカル変数で定義した消費税を使って関数が計算されます。

おわりに

 如何だったでしょうか?

 Pythonの関数とは?、組み込み関数、ユーザー定義関数、関数の定義と呼び出し、関数の引数、位置引数、キーワード引数、デフォルト引数、グローバル変数とローカル変数 などについて解説してきました。

 この記事を読みながらPythonを学んでもらえればと思います。

 次をお楽しみに?

以上です。

 

コメント

タイトルとURLをコピーしました