Python関数の定義と呼び出し完全ガイド【初心者向け】

 

Pythonプログラミングにおいて、関数は最も重要な概念の一つです。この記事では、Python関数の定義と呼び出しについて、基本から応用まで分かりやすく解説します。

関数とは?

関数とは、特定の処理をまとめて名前を付けたもので、必要な時に何度でも呼び出して使用できる仕組みです。コードの再利用性を高め、プログラムを整理整頓するために欠かせません。

基本的な関数の定義方法

Pythonで関数を定義するには、defキーワードを使用します。

基本構文

def 関数名():
    処理内容

最もシンプルな関数例

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

# 関数の呼び出し
greet()

出力:

こんにちは!

引数を持つ関数

関数に値を渡して処理を行うことができます。

基本的な引数

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

greet_name("田中")

出力:

こんにちは、田中さん!

複数の引数

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

add(3, 5)

出力:

3 + 5 = 8

戻り値を持つ関数

return文を使用して、関数から値を返すことができます。

def multiply(x, y):
    return x * y

result = multiply(4, 6)
print(result)

出力:

24

複数の値を返す

def calc(a, b):
    return a + b, a - b

sum_val, diff_val = calc(10, 3)
print(f"和: {sum_val}, 差: {diff_val}")

出力:

和: 13, 差: 7

デフォルト引数

引数にデフォルト値を設定できます。

def greet_with_time(name, time="朝"):
    print(f"{time}ですね、{name}さん!")

greet_with_time("佐藤")
greet_with_time("佐藤", "夜")

出力:

朝ですね、佐藤さん!
夜ですね、佐藤さん!

キーワード引数

引数名を指定して関数を呼び出すことができます。

def introduce(name, age, city):
    print(f"私は{name}、{age}歳、{city}出身です")

introduce(age=25, name="山田", city="東京")

出力:

私は山田、25歳、東京出身です

可変長引数

*args(位置引数)

def sum_all(*numbers):
    return sum(numbers)

print(sum_all(1, 2, 3, 4, 5))

出力:

15

**kwargs(キーワード引数)

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

show_info(name="鈴木", age=30, job="エンジニア")

出力:

name: 鈴木
age: 30
job: エンジニア

実践的な関数の例

計算機能付き関数

def calculator(operation, a, b):
    if operation == "add":
        return a + b
    elif operation == "subtract":
        return a - b
    elif operation == "multiply":
        return a * b
    elif operation == "divide":
        return a / b if b != 0 else "エラー: ゼロ除算"

print(calculator("add", 10, 5))
print(calculator("divide", 10, 0))

出力:

15
エラー: ゼロ除算

リスト処理関数

def find_max_min(numbers):
    if not numbers:
        return None, None
    return max(numbers), min(numbers)

data = [3, 1, 4, 1, 5, 9, 2, 6]
max_val, min_val = find_max_min(data)
print(f"最大値: {max_val}, 最小値: {min_val}")

出力:

最大値: 9, 最小値: 1

ラムダ関数(無名関数)

短い処理はlambdaを使って一行で定義できます。

# 通常の関数
def square(x):
    return x ** 2

# ラムダ関数
square_lambda = lambda x: x ** 2

print(square(5))
print(square_lambda(5))

出力:

25
25

ラムダ関数の実用例

numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x ** 2, numbers))
print(squared)

出力:

[1, 4, 9, 16, 25]

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

global_var = "グローバル変数"

def scope_test():
    local_var = "ローカル変数"
    print(global_var)
    print(local_var)

scope_test()
print(global_var)
# print(local_var)  # エラー: ローカル変数は関数外では使用不可

関数を引数として渡す

def apply_operation(func, x, y):
    return func(x, y)

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

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

print(apply_operation(add, 3, 4))
print(apply_operation(multiply, 3, 4))

出力:

7
12

よくあるエラーとその対処法

1. 関数名の間違い

# 間違い
def myfunction():
    print("テスト")

myFunction()  # NameError: name 'myFunction' is not defined

2. 引数の数の不一致

def greet(name, age):
    print(f"{name}さん、{age}歳")

# greet("田中")  # TypeError: missing 1 required positional argument
greet("田中", 25)  # 正しい呼び出し

まとめ

Python関数の基本的な定義と呼び出し方法について学びました。関数を効果的に使用することで、以下のメリットが得られます:

  • コードの再利用性向上
  • プログラムの構造化
  • デバッグの容易さ
  • 保守性の向上

関数はPythonプログラミングの基礎中の基礎です。今回紹介した内容を実際に手を動かして練習し、自分のものにしていきましょう。

関連キーワード

  • Python 関数
  • def キーワード
  • return文
  • 引数 パラメータ
  • ラムダ関数
  • スコープ
  • Python 基礎
  • プログラミング 初心者

■プロンプトだけでオリジナルアプリを開発・公開してみた!!

■AI時代の第一歩!「AI駆動開発コース」はじめました!

テックジム東京本校で先行開始。

■テックジム東京本校

「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。

<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。

<月1開催>放送作家による映像ディレクター養成講座

<オンライン無料>ゼロから始めるPython爆速講座