[Pythonのはじめ方] Part10: 引数と戻り値

Python

関数に情報を渡し、結果を受け取る方法をマスターしよう!

前回は関数の基本的な定義と呼び出し方を学びましたね。関数は特定の処理をひとまとめにする便利な機能ですが、その真価は「引数」と「戻り値」を使うことでさらに発揮されます。 💪

引数を使うと、関数に外部から情報を与えることができます。これにより、同じ処理でも異なるデータに対して関数を実行できるようになります。一方、戻り値を使うと、関数内での処理結果を関数の呼び出し元に返すことができます。

今回は、この「引数」と「戻り値」について詳しく見ていきましょう!

引数 (Arguments / Parameters) とは? 🤔

引数(ひきすう)とは、関数を呼び出す際に、関数に渡す値のことです。関数を定義する際には、受け取る値を「仮引数(parameter)」として指定し、関数を呼び出す際には、具体的な値を「実引数(argument)」として渡します。

簡単な例を見てみましょう。挨拶を表示する関数を考えます。


# 関数定義:name という仮引数を受け取る
def greet(name):
  print(f"こんにちは、{name}さん!")

# 関数呼び出し: "山田" という実引数を渡す
greet("山田")
# 関数呼び出し: "鈴木" という実引数を渡す
greet("鈴木")
        

実行結果:


こんにちは、山田さん!
こんにちは、鈴木さん!
        

このように、引数 name を使うことで、関数 `greet` は様々な名前に対して挨拶を表示できるようになりました。

引数の種類

Pythonの関数では、いくつかの種類の引数の渡し方があります。

1. 位置引数 (Positional Arguments)

最も基本的な引数の渡し方です。関数を呼び出す際に渡した引数が、関数定義の仮引数の順番通りに対応付けられます。


def introduce(name, age):
  print(f"私の名前は{name}です。年齢は{age}歳です。")

# 1番目の引数 "佐藤" が name に、2番目の引数 25 が age に対応
introduce("佐藤", 25)
          

実行結果:


私の名前は佐藤です。年齢は25歳です。
          

注意点:引数の順番を間違えると、意図しない動作になる可能性があります。

戻り値 (Return Value) とは? 🎁

戻り値(もどりち)とは、関数が処理を実行した結果として、関数の呼び出し元に返す値のことです。関数内で `return` 文を使うことで、戻り値を指定します。


# 2つの数値を受け取り、その合計を返す関数
def add(a, b):
  result = a + b
  return result # 計算結果を戻り値として返す

# 関数を呼び出し、戻り値を変数 sum_result に代入
sum_result = add(5, 3)
print(f"5 + 3 の結果は {sum_result} です。")

# 戻り値は直接使うこともできる
print(f"10 + 7 の結果は {add(10, 7)} です。")
        

実行結果:


5 + 3 の結果は 8 です。
10 + 7 の結果は 17 です。
        

`return` 文が実行されると、その時点で関数の処理は終了し、指定された値が呼び出し元に返されます。

複数の値を返す

`return` 文でカンマ区切りで複数の値を指定すると、それらの値はタプルとしてまとめられて返されます。


# 2つの数値を受け取り、合計と差を返す関数
def calc_sum_diff(a, b):
  sum_val = a + b
  diff_val = a - b
  return sum_val, diff_val # 合計と差をタプルとして返す

# 戻り値をタプルのまま受け取る
result_tuple = calc_sum_diff(10, 4)
print(f"計算結果 (タプル): {result_tuple}")
print(f"合計: {result_tuple[0]}")
print(f"差: {result_tuple[1]}")

# 戻り値を別々の変数にアンパックして受け取ることもできる
s, d = calc_sum_diff(10, 4)
print(f"合計: {s}")
print(f"差: {d}")
        

実行結果:


計算結果 (タプル): (14, 6)
合計: 14
差: 6
合計: 14
差: 6
        

戻り値がない場合 (None)

関数内で `return` 文が実行されない場合、または `return` の後に何も指定しない場合、関数は自動的に特別な値 `None` を返します。`None` は「何もない」ことを表す値です。


# 戻り値を指定しない関数
def simple_print(message):
  print(message)
  # return 文がない

result = simple_print("Hello!")
print(f"simple_print関数の戻り値: {result}")
print(f"戻り値の型: {type(result)}")

# return だけ書いた場合も同様
def return_none():
    print("returnの後に値を指定しません")
    return

result_none = return_none()
print(f"return_none関数の戻り値: {result_none}")
        

実行結果:


Hello!
simple_print関数の戻り値: None
戻り値の型: <class 'NoneType'>
returnの後に値を指定しません
return_none関数の戻り値: None
        

処理を実行するだけで、特に結果を返す必要がない関数では、このように戻り値が `None` になります。

まとめ 🥳

今回は、関数の「引数」と「戻り値」について学びました。

  • 引数: 関数に情報を渡すための仕組み。位置引数、キーワード引数、デフォルト引数、可変長引数(*args, **kwargs)などがある。
  • 戻り値: 関数の処理結果を呼び出し元に返すための仕組み。return 文で指定する。複数の値を返す場合はタプルになり、return がない場合は None が返る。

引数と戻り値を使いこなすことで、関数はより柔軟で、再利用性の高いものになります。様々なデータを処理したり、計算結果を他の処理で活用したりできるようになります。

色々な種類の引数や戻り値のパターンを試して、関数の使い方に慣れていきましょう!🚀

コメント

タイトルとURLをコピーしました