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爆速講座


