
Python(5) 関数
Pythonの関数とは?
関数は、特定の処理をまとめて名前を付けたものです。関数を使うと、繰り返し使う処理を簡単に呼び出せるようになり、プログラム全体を整理して見やすくすることができます。
例えば、「数値の足し算を行う処理」があったとします。この処理を関数として定義しておけば、必要なときに簡単に呼び出して使えます。
1. 関数の定義と呼び出し
関数は次のように定義します。
def 関数名(引数1, 引数2, ...):
# 処理内容
return 結果 # 必要なら処理結果を返す
例1: 足し算をする関数
def add(a, b):
return a + b
関数の呼び出し
result = add(3, 4) # 3と4を足し算する
print(result) # 出力: 7
この例では、add という名前の関数を定義し、2つの数を足し算しています。add(3, 4) を呼び出すことで、3と4が引数として渡され、その結果である7が戻り値として返されます。
2. 引数とは?
関数には、引数を渡して、関数が受け取った値を元に処理を行うことができます。引数は、関数の定義時に指定する変数で、関数の呼び出し時に実際の値を渡します。
例2: 名前と年齢を表示する関数
def greet(name, age):
print(f"こんにちは、{name}さん。あなたは{age}歳です。")
greet("太郎", 30) # 名前と年齢を渡す
出力:
こんにちは、太郎さん。あなたは30歳です。
この例では、greet 関数が name と age という2つの引数を受け取り、それを使ってメッセージを表示しています。
3. 戻り値とは?
関数は、処理が終わった後に結果を返すことができます。これを「戻り値」と言います。戻り値があることで、その結果を他の部分で利用できます。
例3: 掛け算をする関数
def multiply(a, b):
return a * b
result = multiply(5, 6) # 5と6を掛け算
print(result) # 出力: 30
説明:
1. multiply(5, 6) で、5と6が引数として渡されます。
2. 関数内で掛け算が行われ、その結果である30が return 文で返されます。
3. 呼び出し元では、戻り値として返された30が result に代入されます。
4. 引数の種類
Pythonでは、関数の引数に対して柔軟な使い方が可能です。
a) 位置引数
位置引数は、引数の順番によって値が渡されます。例では、最初の引数が name に、2つ目の引数が age に渡されます。
def greet(name, age):
print(f"こんにちは、{name}さん。あなたは{age}歳です。")
greet("太郎", 25)
b) デフォルト引数
デフォルト引数を使うと、関数呼び出し時にその引数を省略できます。省略された場合、デフォルトの値が使われます。
def greet(name="ゲスト"):
print(f"こんにちは、{name}さん。")
greet() # 引数なしで呼び出し
greet("花子") # 名前を渡して呼び出し
出力:
こんにちは、ゲストさん。
こんにちは、花子さん。
c) 可変長引数(*args)
引数の数が不定の場合、*args を使うことで、複数の値を1つのタプルとして受け取ることができます。
def sum_all(*numbers):
return sum(numbers)
print(sum_all(1, 2, 3, 4, 5)) # 出力: 15
説明:
• sum_all 関数は、任意の数の引数を受け取ります。
• 関数内では、引数全体をタプルとして扱い、その合計を計算しています。
5. 応用例: BMI計算
実生活で役立つ関数の例として、BMI(体格指数)を計算する関数を作ってみましょう。
例4: BMIを計算する関数
def calculate_bmi(weight, height):
bmi = weight / (height ** 2)
return bmi
my_bmi = calculate_bmi(70, 1.75) # 体重70kg、身長1.75mの人のBMIを計算
print(f"あなたのBMIは {my_bmi:.2f} です") # 結果を小数点2桁まで表示
出力:
あなたのBMIは 22.86 です
この例では、体重と身長を使ってBMIを計算し、その結果を返しています。関数の使い方として、具体的な目的に応じた実用例です。
6. 複数の戻り値
Pythonの関数は、1つだけでなく複数の戻り値を返すことができます。これはタプルを使うことで実現できます。
例5: 足し算と引き算の結果を返す関数
def calculate(a, b):
sum_result = a + b
diff_result = a - b
return sum_result, diff_result # 2つの結果を返す
sum_value, diff_value = calculate(10, 3)
print(f"足し算の結果: {sum_value}") # 出力: 足し算の結果: 13
print(f"引き算の結果: {diff_value}") # 出力: 引き算の結果: 7
説明:
• calculate(10, 3) では、足し算の結果と引き算の結果がそれぞれ sum_value と diff_value に格納されます。
• 関数から複数の値を返すことで、1回の呼び出しで複数の処理結果を得られます。
まとめ
1. 関数の定義:def で関数を定義し、引数を使って処理を行い、結果を return で返します。
2. 引数の柔軟性:位置引数、デフォルト引数、可変長引数などを使い、さまざまな方法でデータを渡せます。
3. 戻り値:関数の処理結果を呼び出し元に返すことができ、複数の値も返すことが可能です。
4. 実用的な例:BMI計算のように、日常生活でも役立つ関数を作って理解を深めることができます。