Pythonスキルの習得

【Python入門】関数の基本 – 定義、引数、返り値、そしてラムダ関数の利用方法 –

【Python入門】関数の基本 - 定義、引数、返り値、そしてラムダ関数の利用方法 -

こんにちは、Zero-Cheeseです。

本記事は、プログラム言語「Python」を学び始めた方を対象に、

  • 関数の基本的な使い方
  • 引数や返り値の理解
  • ラムダ関数の概要

を、解説します。

関数とは?

関数は、特定の動作や手順を、1つにまとめたものといえます。

料理の「レシピ」のように

  • 手順や材料を1つにまとめたもの

と考えると、わかりやすいと思います。

「レシピに従うことで、料理が作成できる」のと同じように、「関数に従うことで特定の手順を実行」できます。

関数の基本的な考え方

例をあげると、「オムレツを作る」という「レシピ」があるとします。

このレシピを参照すれば、誰でもオムレツを作る事ができます。

Pythonの関数も、これと同じ原理で動作します。

以下は、オムレツを作る「手順を」示す、Pythonの関数例です。

(defは関数の定義に使います。後ほど詳細を説明しているので、雰囲気だけつかんで下さい。)

def オムレツを作る():
    print("卵を割る")
    print("フライパンで焼く")
    print("お皿に盛る")

この関数「オムレツを作る( )」を呼びだすだけで、上記の手順が、順番に実行されます。

関数を使う理由

  • 繰り返しを避ける
    • 同じ手順を何度も、書く必要がなくなります。
  • 機能が分かりやすい
    • 何をする手順なのか、関数の名前から推測できます。(「オムレツを作る」とか)
  • 修正が簡単
    • 修正が必要な場合、関数の中身だけを、修正すればOKです。

関数の使い方

この章では、関数の基本的な使い方から、より詳細な使い方まで、解説します。

基本的な関数の使い方

関数を作る手順

  1. まず「def」というキーワードを、記載します。
  2. 続けて「関数の名前」と、「括弧 ( )」を書き、
  3. その後に、コロン(:)をつけて、新しい行から、関数の中身を書きます。
  4. 新しい行は、インデント(通常:スペース4行分」)を入れる事で、関数の中身として認識されます。
def あいさつ():
    print("こんにちは!")
print('インテントのないため、この行は関数外です。')

このようにして作った関数は、「あいさつ( )」とPythonコード中に書くことで、何度でも呼び出す事ができます。

より詳細な、関数の使い方

引数の役割と使い方

関数には、引数(「ひきすう」と読みます、「いんすう」ではありません。)というものを、与える事ができます。

これは、関数に情報を渡して、それを関数内で使えるようにしたものです。

例えば、名前を引数として関数に渡し、その名前を使って挨拶をする関数を、考えてみます。

def あいさつ(name):  # ← name が引数
    print("こんにちは、" + {name} + "さん!")

この関数「あいさつ(”太郎”)」をPythonコード中に記載すると、「こんにちは、太郎さん!」と表示されます。

返り値の使い方

関数は、実行結果として「何か」を返す事ができます。

これを返り値と呼びます。

例えば、「2つの数字を足す関数」を考えてみます。

def 足し算(a, b):
    return a + b

この関数を、「足し算(3, 4)」のように使用すると、7 という数字が返ります。

返り値は、一つだけでなく、複数も返せます。

def 足し算_引き算(a, b):
    return a + b, a - b

また必ず返さなくても、大丈夫です。

その場合、関数内のreturn文を書かないようにします。

ラムダ関数とは?

Pythonには、「def」キーワードを使って関数を定義する通常の方法の他に、「ラムダ関数」という、特殊な関数の定義方法が存在します。

この章では、「ラムダ関数」について、詳しく解説していきます。

ラムダ関数の定義と、利点

ラムダ関数は、「lambda」キーワードを使用して定義され、しかも名前をもたない関数(無名関数)です。

コード例:

f = lambda x: x + 1
print(f(2))  # 3

上記は、引数「x」 を受け取り、「x + 1」を返す関数です。

この関数を、変数「f」に代入しています。

変数「f」に格納された関数の実行は、f(2)のように、「変数名( ) 」と記載します。

ラムダ関数の主なメリットは、以下のとおりです。

  • コードが短くなる
  • 一時的な関数として使う場合、便利

通常の関数との違い

主な違いは、ラムダ関数は名前を持たない点です。

またラムダ関数は一行で定義されるため、複雑な処理をもつ関数には、適していません。

通常の関数(例):

def add_one(x):
    return x + 1

ラムダ関数(例):

f = lambda x: x + 1

実用的なラムダ関数の使用例

ここでは、リストの「sort」等を知っている前提で、お話をしています。

分からない方は、Skipして頂いて大丈夫です。

ラムダ関数は、リストの「sort」、「filter」、「map」等を使用する際、便利です。

例:リストの要素を文字列の長さでソートする

words = ['apple', 'banana', 'cherry']
sorted_words = sorted(words, key=lambda x: len(x))
print(sorted_words)  # ['apple', 'cherry', 'banana']

まとめと次回予告

まとめ

この記事では、

  • 関数の基本的な定義と利用方法
  • 引数と返り値に関する詳細な知識
  • ラムダ関数とその特性

を解説しました。

関数はプログラムの中で、非常に重要な役割を果たしています。

効果的に使用することで、コードの可読性や効率を、向上させる事ができます。

関数を効果的に使用するためのヒント、注意点

  • 明確なタスクを持った関数になるよう、意識しましょう
  • 関数の動作を反映した、「関数名」を付けましょう
  • 引数や返り値は、最小限に抑えましょう。(コード品質が保てやすくなります。)

次回予告

次回の記事では、

  • 「モジュール」と「パッケージ」

について詳しく解説します。

効率的なプログラム構築のための「必須知識」となります。

次回も、一緒にPythonの世界を、学習していきましょう!

最後までお付き合い頂き、ありがとうございました。

また次回、お会いしましょう!

後日、次回記事を、投稿しました。

【Python入門】モジュールとパッケージの基本 - 再利用可能なコードを書く -
【Python入門】モジュールとパッケージの基本 - 再利用可能なコードを書く -Pythonプログラミングにおけるモジュールと、パッケージの基本的な使い方を解説しました。Python初心者向けに、コードの再利用、整理整頓、効率的なプログラミングを書くための方法を紹介します。...