関数の基本形を学ぶと、次に気になるのが「外から値を渡すにはどうするのか」「計算結果を受け取るにはどうするのか」という点です。
そこで大切になるのが、引数と戻り値です。
この記事では、初心者向けにこの2つの役割をやさしく整理しながら、実際に動くコードで確認していきます。
この記事でわかること
完成コード(まず見てみよう)
def calc_total_price(price, shipping_fee):
total = price + shipping_fee
return total
item_total = calc_total_price(1200, 300)
print("合計金額:", item_total, "円")コードの実行結果は次の通りです。
合計金額: 1500 円このコードはそのまま実行できます。1200 と 300 を関数に渡し、計算した結果を受け取って表示しています。
テーマの説明(やさしく)
引数は、関数に外から値を渡すための入り口です。
「この関数に必要な材料を渡す場所」と考えるとわかりやすいです。
たとえば、商品の金額や送料のように、毎回変わる値を関数の中で使いたいときがあります。
そのときに引数を使うと、同じ関数をいろいろな値で使い回せます。
戻り値は、関数の中で作った結果を外へ返すためのものです。
計算した答えを、呼び出した側でも使えるようにする仕組みだと考えるとよいです。
基本の形は次の通りです。
def 関数名(引数):
処理
return 戻り値return が実行されると、その値が関数の外へ返ります。
返ってきた値は変数に入れたり、そのまま print() で表示したりできます。
具体例・補足説明
まずは、引数だけを使う例を見てみます。
def say_name(name):
print("こんにちは、" + name + "さん")
say_name("田中")
say_name("佐藤")コードの実行結果は次の通りです。
こんにちは、田中さん
こんにちは、佐藤さんこの例では、name が引数です。
同じ関数でも、渡す値を変えるだけで表示内容を変えられます。
次に、戻り値を使う例を見てみます。
def make_message(name):
message = "こんにちは、" + name + "さん"
return message
text = make_message("鈴木")
print(text)コードの実行結果は次の通りです。
こんにちは、鈴木さんこのコードでは、関数の中で作った文字列を return で返しています。
返ってきた値を text に入れてから表示しているので、あとで別の処理にも使えます。
引数と戻り値を両方使うと、計算の関数がさらにわかりやすくなります。
def calc_score_average(math_score, english_score):
total = math_score + english_score
average = total / 2
return average
result = calc_score_average(80, 92)
print("平均点:", result)コードの実行結果は次の通りです。
平均点: 86.0このように、引数で材料を受け取り、戻り値で答えを返すと、関数が「入力すると結果が出る部品」のように使えます。
同じ計算を何度もしたいときにも便利です。
なお、return を書かない関数は、計算結果を外へ返しません。
表示だけしたい関数と、結果を返したい関数は役割が少し違うので、使い分けを意識すると理解しやすくなります。
おじちくワンポイント
初心者のうちは、引数を「関数に渡す値」、戻り値を「関数から受け取る値」と一言で覚えるのがおすすめです。
難しく考えすぎず、「渡す」と「返す」の流れをコードで何度か書いてみると、自然に身につきます。
よくある勘違い・注意点
練習問題
問題1calc_rectangle_area(width, height) という関数を作り、長方形の面積を返してください。5 と 8 を渡して、結果を表示してみてください。
問題2create_greeting(name, hour) という関数を作り、"こんにちは、田中さん。今は14時です。" のような文章を戻り値として返してください。返ってきた値を変数に入れて表示してみてください。