未分類

【Python】第3章第2回:引数と戻り値の基本

本記事では、Pythonの関数における引数と戻り値の基本的な使い方を解説します。引数を使ってデータを関数に渡し、戻り値を通じて結果を受け取る仕組みを学びます。

0. 記事の概要

この記事を読むメリット

  • 引数と戻り値の仕組みを理解:データの受け渡し方法を学べます。
  • 関数の応用力を向上:引数や戻り値を活用して効率的なコードを記述できます。
  • 実践的なスキルを習得:具体的な例を通じて関数の使い方を深く理解できます。

この記事で学べること

  • 引数の基本的な使い方
  • 戻り値の基本的な使い方
  • 実践的な関数の活用例

1. 引数の基本

1.1 引数とは何か?

引数とは、関数にデータを渡すための手段です。関数定義時に指定する引数を通じて、関数内部で処理に必要なデータを受け取ります。

# 引数を使った関数の例
def greet_user(name):
    print(f"こんにちは、{name}さん!")

greet_user("太郎")
greet_user("花子")
動作解説
  1. def greet_user(name):: 引数nameを持つ関数を定義します。
  2. 呼び出し時に"太郎""花子"を渡します。
  3. 渡された引数を使用してprint文が動作します。

1.2 デフォルト引数

引数にデフォルト値を設定することで、値が渡されなかった場合の動作を指定できます。

# デフォルト引数を持つ関数
def greet_user(name="ゲスト"):
    print(f"こんにちは、{name}さん!")

greet_user()
greet_user("太郎")
動作解説
  1. 引数nameのデフォルト値を"ゲスト"に設定します。
  2. 引数が渡されない場合、デフォルト値が使用されます。

2. 戻り値の基本

2.1 戻り値とは何か?

戻り値とは、関数が処理した結果を呼び出し元に返す仕組みです。return文を使って結果を返します。

# 戻り値を持つ関数
def square_number(number):
    return number ** 2

result = square_number(4)
print(f"4の平方: {result}")
動作解説
  1. square_number(number):: 引数numberの平方を計算します。
  2. return文を使って結果を呼び出し元に返します。
  3. 返された値を変数resultに格納し、出力します。

2.2 複数の戻り値を返す

関数は複数の戻り値をタプルとして返すことができます。

# 複数の戻り値を返す関数
def calculate(a, b):
    return a + b, a - b

sum_result, diff_result = calculate(10, 5)
print(f"合計: {sum_result}, 差: {diff_result}")
動作解説
  1. calculate(a, b):: 2つの引数を受け取り、合計と差を計算します。
  2. return a + b, a - b: 複数の値をタプルとして返します。
  3. 返された値をそれぞれの変数に格納します。

3. 実践例:引数と戻り値を使ったプログラム

ユーザーからの入力を受け取り、合計と平均を計算するプログラムを作成します。

# 合計と平均を計算
def calculate_sum_and_average(numbers):
    total = sum(numbers)
    average = total / len(numbers)
    return total, average

numbers = [10, 20, 30, 40]
total, average = calculate_sum_and_average(numbers)
print(f"合計: {total}, 平均: {average}")
動作解説
  1. calculate_sum_and_average(numbers):: 引数としてリストnumbersを受け取ります。
  2. リスト内の数値を合計し、平均を計算します。
  3. 計算結果を戻り値として返し、呼び出し元で使用します。

4. 練習問題

以下の課題に挑戦してみましょう。

  1. 2つの数値を受け取り、それらの最大値と最小値を返す関数を作成してください。
  2. 文字列をリストとして受け取り、文字数の合計を計算する関数を作成してください。

5. 練習問題の解答と解説

問1の解答例

# 最大値と最小値を返す関数
def find_max_and_min(a, b):
    return max(a, b), min(a, b)

max_value, min_value = find_max_and_min(10, 5)
print(f"最大値: {max_value}, 最小値: {min_value}")

問2の解答例

# 文字数の合計を計算
def calculate_total_characters(strings):
    return sum(len(s) for s in strings)

strings = ["Python", "楽しい", "学習"]
total_characters = calculate_total_characters(strings)
print(f"文字数の合計: {total_characters}")

6. まとめ

Pythonで引数と戻り値を使うことで、柔軟かつ効率的なプログラムを作成できます。基本を理解した上で、実践的な問題にも挑戦してください。