関数はあらゆるプログラミング言語の基本的な構成要素であり、Pythonも例外ではありません。関数はコードを再利用可能な、管理しやすい塊に整理し、可読性、保守性、効率性を向上させます。このチュートリアルでは、Python関数の基本概念を説明します。
目次
Python関数とは何か
Python関数は、特定のタスクを実行するように設計された、自己完結型のコードブロックです。ロジックをカプセル化し、プログラムをよりモジュール化し、理解しやすくする手段です。関数はコードの再利用性を促進します。同じコードを何度も書く代わりに、一度書いて、必要なときにいつでも呼び出します。
Python関数の定義
関数はdef
キーワード、それに続く関数名、括弧()
、コロン:
を使って定義します。インデントされた下にある関数本体には、実行されるコードが含まれています。パラメータ(入力)は括弧内に指定します。
def greet(name):
"""この関数は、パラメータとして渡された人に挨拶します。"""
print(f"Hello, {name}!")
def add(x, y):
"""この関数は2つの数値を加算し、合計を返します。"""
return x + y
主要な要素:
def
: 関数の定義を示すキーワード。- 関数名: Pythonの命名規則(小文字とアンダースコア)に従った記述的な名前。
- パラメータ: 入力値を受け取る括弧内の変数。
- docstring: 三重引用符(
"""Docstring goes here"""
)で囲まれた文字列で、関数の目的を説明します。可読性のために不可欠です。 - 関数本体: インデントされたコードブロック。
return
文(省略可能): 関数が返す値を指定します。
関数の例
関数の定義と使用方法のさまざまな側面を示すいくつかの例を以下に示します。
def calculate_area(length, width):
"""長方形の面積を計算します。"""
return length * width
area = calculate_area(5, 10) # 関数を呼び出す
print(f"The area is: {area}") # 出力: The area is: 50
def factorial(n):
"""非負整数の階乗を計算します。"""
if n == 0:
return 1
else:
return n * factorial(n-1) #再帰関数
print(factorial(5)) # 出力: 120
関数の呼び出し
関数を使用するには、その名前の後に括弧を付け、必要な引数(パラメータの値)を指定して呼び出します。
greet("Alice") # 出力: Hello, Alice!
sum_result = add(5, 3)
print(sum_result) # 出力: 8
return
文
return
文は、関数が呼び出し元に返す値を指定します。省略した場合は、関数は暗黙的にNone
を返します。
def no_return():
print("この関数は値を返しません。")
def with_return():
return 42
print(no_return()) # 出力: この関数は値を返しません。 None
print(with_return()) # 出力: 42
変数のスコープと寿命
関数内で定義された変数は、ローカルスコープを持ちます。つまり、その関数内でのみアクセスできます。関数外で定義された変数は、グローバルスコープを持ちます。つまり、プログラム全体でアクセスできます。変数の寿命は、メモリに存在する期間です。ローカル変数は、関数が実行されている間だけ存在します。
関数の種類
Pythonはいくつかの種類の関数をサポートしています。
- 組み込み関数:
print()
、len()
、input()
などの事前に定義された関数。 - ユーザー定義関数: プログラマが作成した関数。
- 再帰関数: 自身を呼び出す関数(上記の
factorial
の例など)。 - ラムダ関数(無名関数):
lambda
キーワードを使用して定義された、小さく名前のない関数で、短い操作に使用されることが多い。
このチュートリアルは、Python関数の基礎的な理解を提供します。デフォルト引数、キーワード引数、可変長引数(*args
と**kwargs
)、デコレータなどの高度なトピックをさらに探求すると、Pythonプログラミングスキルが大幅に向上します。