【Python基礎5】関数の定義と呼び出し方|再利用可能なコードを簡単に作る

関数とは?プログラムの再利用を可能にする重要な要素

関数の概要

関数とは、複数の処理を1つにまとめ、必要なときに呼び出せるようにする仕組みです。プログラムの中で何度も同じ処理を行う場合、関数を使うことでコードの再利用性が高まり、プログラムが読みやすくなります。

なぜ関数が重要なのか?

  • コードの繰り返しを防ぎ、プログラムを短く、簡潔にする
  • 変更が必要な場合、関数の内部だけを修正すれば済む
  • プログラムの見通しが良くなり、デバッグが容易になる

Pythonでの関数の基本構文

関数を定義するための基本構文

関数を定義するには、defキーワードを使います。次のように記述します:

def 関数名(引数):
    実行する処理
  • 関数名: 関数を呼び出すための名前を指定します
  • 引数(任意): 関数に渡すデータを指定します
  • 実行する処理: 関数が呼び出されたときに実行するコードです

簡単な関数の例

def greet():
    print("こんにちは!Pythonの世界へようこそ。")

関数の呼び出し方

定義した関数は、次のように呼び出します:

greet()

出力:

こんにちは!Pythonの世界へようこそ。

引数付きの関数の使い方

引数の基本的な使い方

関数に引数を渡すことで、動的に処理を変更することができます。たとえば、引数として名前を渡して挨拶文を変えることができます。

例: 引数を使った関数

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

関数を呼び出すときに引数を指定します:

greet("Taro")

出力:

こんにちは、Taroさん!

複数の引数を渡す

関数には複数の引数を渡すことも可能です。

例: 2つの引数を受け取る関数

def add(a, b):
    result = a + b
    print(f"{a} + {b} = {result}")

呼び出し:

add(3, 5)

出力:

3 + 5 = 8

戻り値を持つ関数

戻り値とは?

関数が計算結果や処理の結果を呼び出し元に返す値のことを「戻り値」と言います。戻り値を得るには、return文を使います。

例: 計算結果を返す関数

def multiply(a, b):
    return a * b

呼び出して結果を表示する:

result = multiply(4, 5)
print(f"結果: {result}")

出力:

結果: 20

戻り値を使って別の処理に応用する

戻り値を使えば、関数から得た結果をさらに別の処理に利用することができます。

例:

def square(x):
    return x ** 2

def double_square(x):
    return 2 * square(x)

print(double_square(3))

出力:

18

デフォルト引数と可変長引数の使い方

デフォルト引数

デフォルト引数とは、関数に引数を渡さなかった場合に使われるデフォルトの値を設定するものです。

例:

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

引数を省略して呼び出す:

greet()  # デフォルトの「ゲスト」が使われる
greet("Yuki")  # 指定した名前が使われる

出力:

こんにちは、ゲストさん!  
こんにちは、Yukiさん!

可変長引数

可変長引数を使うと、任意の数の引数を渡すことができます。これには、*args**kwargsを使います。

  • *args: 任意の数の位置引数を受け取る
  • **kwargs: 任意の数のキーワード引数を受け取る

例:

def add_numbers(*args):
    total = sum(args)
    print(f"合計: {total}")

add_numbers(1, 2, 3, 4, 5)

出力:

合計: 15

関数のスコープ(変数の有効範囲)

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

  • ローカル変数: 関数の内部でのみ有効な変数
  • グローバル変数: 関数の外部でも有効な変数

例:

x = 10  # グローバル変数

def my_function():
    x = 5  # ローカル変数
    print(f"関数内のx: {x}")

my_function()
print(f"関数外のx: {x}")

出力:

関数内のx: 5  
関数外のx: 10

globalキーワードを使った変数の変更

関数内でグローバル変数を変更するには、globalキーワードを使います。

例:

count = 0

def increment():
    global count
    count += 1

increment()
print(count)

出力:

1

関数の再帰呼び出し(再帰関数)

再帰関数とは?

再帰関数は、自分自身を呼び出す関数のことです。特に、階乗やフィボナッチ数列の計算などで使われます。

例: 階乗を求める再帰関数

def factorial(n):
    if n == 0:
        return 1
    return n * factorial(n - 1)

print(factorial(5))

出力:

120

lambda式(無名関数)

lambda式とは?

lambda式は、名前を付けずにその場で一時的に使える関数のことです。簡単な処理であれば、通常の関数よりも短く記述できます。

構文:

lambda 引数: 処理

例:

square = lambda x: x ** 2
print(square(4))

出力:

16

まとめと次のステップ

関数を使いこなすことは、プログラミングの効率を大幅に向上させます。引数、戻り値、スコープ、lambda式、再帰呼び出しなど、さまざまな機能を理解していくことで、より高度なプログラムが作成できるようになります。次のステップとして、関数を複数組み合わせたプログラムや、ライブラリの関数を活用したプロジェクトに挑戦してみましょう!