【Python関数の基礎】簡単に使えるラムダ関数で処理をスマートに!

※関数の書き方・実行結果に誤りがあるケースがあります。随時修正中です。また誤りに気づかれた方はこちらからご連絡頂きますとめちゃ嬉しいです。

目次

Pythonプログラミング基礎の導入

みんな、こんにちは!今日はPythonの面白いところに飛び込んでいくで~。関数って聞いたことあるかな?関数はプログラムの中で「お手伝い」をしてくれる大事な存在やねん。

メリット

  • コードの再利用:一度作った関数を何度でも使えるから、同じコードを何回も書かんで済むで。
  • 読みやすさ:関数を使うことで、プログラムの構造がスッキリして、他の人が見ても分かりやすくなるんや。
  • デバッグの簡単さ:問題が起きた時、関数ごとにチェックできるから、エラーの特定が楽やね。

例え話

例えば、料理を作る時に考えてみてや。お母さんが毎日同じカレーを作るのに、いちいち「玉ねぎを切る」とか「スパイスを入れる」って言わんでも、最初にレシピを書いておけば、後はそれを見ながら作るだけやん。それが関数の役割なんや。レシピ(関数)を使うことで、料理(プログラム)がスムーズに進むってわけや。

これから、関数の基本を一緒に学んでいこうな!

関数の定義と呼び出し:def文、return文

さてさて、今回は関数の定義と呼び出しについてやで!ここでは、どうやって関数を作るのか、そしてその関数をどのように使うのかを見ていくで~。

関数の定義

関数を定義するには、def文を使うんや。これは「定義する」って意味や。関数名を決めて、中に入れる処理を書いたら完成やで。

def greet():
    print("こんにちは!")

この例では、greetという名前の関数を作ったで。中身は「こんにちは!」って挨拶するだけやけど、これが関数やねん。

関数の呼び出し

関数を呼び出すときは、その関数名を書くだけや。さっき作ったgreet関数を呼び出してみるで。

greet()

これを実行すると、画面に「こんにちは!」って表示されるんや。簡単やろ?

return文

関数から値を返したいときは、return文を使うで。これを使うことで、関数が計算した結果を外に渡すことができるんや。

def add(a, b):
    return a + b

このadd関数は、2つの引数abを足して、その結果を返してくれるんや。呼び出し方はこんな感じやで。

result = add(3, 5)
print(result)  # 8が表示される

このように、関数を使うことで、処理を整理して、コードをスッキリさせることができるんや。次は、引数と戻り値についてもっと詳しく見ていこうな!

引数と戻り値:位置引数、キーワード引数、デフォルト引数

次は、関数に渡す引数と、その結果として戻ってくる値についてやで!引数を使うことで、関数をもっと柔軟に使えるようになるんや。さっそく見ていこか!

位置引数

まずは、位置引数についてや。これは、関数を呼び出すときに、引数をそのまま並べて渡す方法やで。

def greet(name):
    print(f"こんにちは、{name}さん!")

greet("太郎")  # こんにちは、太郎さん!が表示される

ここでは、greet関数に名前を渡して、その名前を使って挨拶するんや。引数の位置が大事やから、順番を間違えんようにせなあかんで。

キーワード引数

次は、キーワード引数についてや。これは、引数名を指定して値を渡す方法やから、順番を気にせんでええのが特徴やで。

def introduce(name, age):
    print(f"{name}さんは{age}歳です。")

introduce(age=25, name="花子")  # 花子さんは25歳です。が表示される

このように、agenameっていう引数名を使って値を渡すことで、順番を気にせずに呼び出せるんや。便利やろ?

デフォルト引数

デフォルト引数は、引数にデフォルトの値を設定できる機能やで。これを使うと、引数を省略した場合に自動的にその値が使われるんや。

def greet(name="ゲスト"):
    print(f"こんにちは、{name}さん!")

greet()  # こんにちは、ゲストさん!が表示される
greet("次郎")  # こんにちは、次郎さん!が表示される

この場合、greet関数は引数を省略すると「ゲスト」と挨拶するようになってるんや。これも使い方次第で便利になるで。

これで、引数と戻り値の基本はバッチリや!次は、可変長引数について見ていこうな!

可変長引数:args, *kwargs

次は、可変長引数についてやで!これは、関数に渡す引数の数が決まってへんときに使う機能や。特に、リストや辞書のようなデータを扱うときに便利なんや。

*args

まずは、*argsについてや。これを使うと、任意の数の位置引数を受け取ることができるんや。*をつけることで、引数をタプルとして受け取ることができるで。

def sum_numbers(*args):
    total = 0
    for num in args:
        total += num
    return total

result = sum_numbers(1, 2, 3, 4, 5)
print(result)  # 15が表示される

この例では、sum_numbers関数は、どんな数でも受け取って、その合計を計算することができるんや。引数の数は決まってへんから、使い勝手がいいで。

**kwargs

次は、**kwargsや。これを使うと、任意の数のキーワード引数を受け取ることができるんや。**をつけることで、引数を辞書として受け取ることができるで。

def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_info(name="太郎", age=30, city="大阪")

この例では、print_info関数がキーワード引数を受け取って、それを辞書として処理してるんや。いろんな情報をまとめて渡せるから、便利やね。

まとめ

可変長引数を使うことで、柔軟性が増して、さまざまなデータを受け取ることができるようになるで。次は、スコープとネームスペースについて見ていこな!

スコープとネームスペース:ローカル変数とグローバル変数

さて、次はスコープとネームスペースについてや!これは、変数がどこで使えるのか、どこで定義されているのかを理解するための重要なポイントやで。

スコープとは

スコープは、変数が有効な範囲のことを指すんや。主に、ローカルスコープとグローバルスコープの2種類があるで。

ローカル変数

ローカル変数は、関数の中で定義された変数のことや。関数の外からはアクセスできへんから、関数の中だけで使われるんや。

def my_function():
    local_var = "私はローカル変数やで!"
    print(local_var)

my_function()  # "私はローカル変数やで!"が表示される
# print(local_var)  # これはエラーになるで!ローカル変数には外からアクセスできんから注意や

このように、local_varmy_functionの中でしか使えへんから、外からは見えんのや。

グローバル変数

一方、グローバル変数は、プログラム全体で使える変数や。関数の外で定義されるから、どこからでもアクセスできるで。

global_var = "私はグローバル変数やで!"

def my_function():
    print(global_var)

my_function()  # "私はグローバル変数やで!"が表示される

ここでは、global_varは関数の外で定義されたから、関数の中でも使うことができるんや。

グローバル変数の変更

もし、関数の中でグローバル変数を変更したいときは、globalキーワードを使わなあかんで。

global_var = "最初の値"

def modify_global():
    global global_var
    global_var = "変更された値"

modify_global()
print(global_var)  # "変更された値"が表示される

このように、globalを使ってグローバル変数を変更することができるんや。

スコープとネームスペースを理解することで、変数の使い方がもっとスムーズになるで!次は、ラムダ関数について見ていこうな!

ラムダ関数:簡潔な関数定義

さあ、最後にラムダ関数について学ぼうや!ラムダ関数は、ちょっとした処理を簡潔に書ける便利な関数やで。普通の関数と比べて、すごい短く書けるのが特徴や。

ラムダ関数の定義

ラムダ関数は、lambdaキーワードを使って定義するんや。基本的な形はこんな感じやで。

lambda 引数: 式

例えば、2つの数の合計を計算するラムダ関数を作ってみるで。

add = lambda x, y: x + y

result = add(3, 5)
print(result)  # 8が表示される

ここでは、addというラムダ関数を定義して、35を足してるんや。通常の関数よりもすっきりしてるやろ?

高階関数との組み合わせ

ラムダ関数は、高階関数と組み合わせて使うことが多いんや。例えば、リストの要素を変換するmap関数や、条件に応じてフィルタリングするfilter関数と一緒に使うことができるで。

map関数の例

numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x ** 2, numbers))
print(squared)  # [1, 4, 9, 16]が表示される

ここでは、リストの各要素を2乗するラムダ関数をmap関数に渡してるんや。

filter関数の例

numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # [2, 4, 6]が表示される

この例では、リストから偶数だけを取り出すラムダ関数をfilter関数に渡してるんや。

まとめ

ラムダ関数を使うことで、簡潔に関数を定義できるから、ちょっとした処理であればすごく便利やで。特に高階関数と組み合わせると、処理がさらにスムーズになるんや。

これで、Pythonの関数に関する基本的な知識を学んだことになるで!これを元に、もっといろんなプログラムを書いてみてな!次は、実際にコードを書いてみる演習をして、理解を深める時間にしようか!

【Python関数の基礎】簡単に使えるラムダ関数で処理をスマートに!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次