こんにちは、Zero-Cheeseです。
本記事は、プログラム言語「Python」を学び始めた方を対象に、
- 関数の基本的な使い方
- 引数や返り値の理解
- ラムダ関数の概要
を、解説します。
本記事を理解するには、「変数」の知識が必要です。
まだ詳しく知らない方は、以下の関連記事を、参考にしてください。
関数とは?
関数は、特定の動作や手順を、1つにまとめたものといえます。
料理の「レシピ」のように
- 手順や材料を1つにまとめたもの
と考えると、わかりやすいと思います。
「レシピに従うことで、料理が作成できる」のと同じように、「関数に従うことで特定の手順を実行」できます。
関数の基本的な考え方
例をあげると、「オムレツを作る」という「レシピ」があるとします。
このレシピを参照すれば、誰でもオムレツを作る事ができます。
Pythonの関数も、これと同じ原理で動作します。
以下は、オムレツを作る「手順を」示す、Pythonの関数例です。
(defは関数の定義に使います。後ほど詳細を説明しているので、雰囲気だけつかんで下さい。)
def オムレツを作る():
print("卵を割る")
print("フライパンで焼く")
print("お皿に盛る")
この関数「オムレツを作る( )」を呼びだすだけで、上記の手順が、順番に実行されます。
関数を使う理由
- 繰り返しを避ける
- 同じ手順を何度も、書く必要がなくなります。
- 機能が分かりやすい
- 何をする手順なのか、関数の名前から推測できます。(「オムレツを作る」とか)
- 修正が簡単
- 修正が必要な場合、関数の中身だけを、修正すればOKです。
関数の使い方
この章では、関数の基本的な使い方から、より詳細な使い方まで、解説します。
基本的な関数の使い方
関数を作る手順
- まず「def」というキーワードを、記載します。
- 続けて「関数の名前」と、「括弧 ( )」を書き、
- その後に、コロン(:)をつけて、新しい行から、関数の中身を書きます。
- 新しい行は、インデント(通常:スペース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の世界を、学習していきましょう!
最後までお付き合い頂き、ありがとうございました。
また次回、お会いしましょう!
後日、次回記事を、投稿しました。