6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

戻り値とは?お菓子屋さんに学ぶ関数の仕組み!

Posted at

プログラミングにおいて「関数」は、特定の処理をまとめて実行するための便利な仕組みです。その中で、関数の 「戻り値(return value)」 は非常に重要な概念です。関数は単に処理を実行するだけでなく、結果を受け取り、それをプログラムの他の部分で活用することができます。

例えば、カフェでお菓子を注文する場面を考えてみましょう。

  • あなた:「チョコレートクッキーを5個ください!」 (← これは「引数」)
  • 店員:「はい、こちらチョコレートクッキー5個になります。」(← これが「戻り値」)

この例のように、関数も入力(引数)を受け取り、処理を行った後、結果(戻り値)を返すことで、プログラムの他の部分に活用できるデータを提供します。

引数については以下の記事を参考にしてください。

🍩 Pythonにおける戻り値の基本

Pythonでは、関数内でreturn文を使用することで戻り値を返すことができます。次の例を見てみましょう。

def make_snack(quantity, snack):
    return f"{quantity}個の{snack}をお渡しします!"

order = make_snack(3, "ドーナツ") 
print(order)

出力:

3個のドーナツをお渡しします!

このコードの流れ

  1. お客さん(プログラム)が「ドーナツ3個」と注文。
  2. 関数(店員)が注文内容を受け取り、結果を作成。
  3. 出来上がったお菓子(戻り値)が返される。
  4. そして、満足したお客さんが出力を見る!

このコードの流れを詳しく説明すると:

  1. 関数make_snackが呼び出されると、引数として「3」と「ドーナツ」が渡される。
  2. 関数内のreturn文が処理され、フォーマットされた文字列("3個のドーナツをお渡しします!")が返される。
  3. 関数の戻り値が変数orderに代入され、print()を使って出力される。

戻り値の活用方法

戻り値を使えば、ただ「お菓子をもらう」だけでなく、より賢くプログラムを動かせます。
例えば、以下のようなシーンで活躍します!

1. 計算結果を受け取る

例えば、お菓子の合計金額を計算する場合:

def calculate_total(price, quantity):
    return price * quantity

total = calculate_total(200, 3)
print(f"合計金額: {total}")

出力:

合計金額: 600円

「お菓子をたくさん買ったら、財布の中身が心配…」
→ 関数が計算してくれるので、買いすぎを防げます!

この例では、価格と数量を引数として関数に渡し、計算された合計金額(戻り値)を変数totalに格納し、出力しています。

2. 条件に応じた応答

例えば、在庫状況を確認し、適切なメッセージを返す例:

def check_availability(snack):
    stock = {"チョコレート": 10, "クッキー": 0}
    if snack in stock and stock[snack] > 0:
        return f"{snack}は在庫があります"
    else:
        return f"申し訳ありません、{snack}は売り切れです"

status = check_availability("クッキー")
print(status)

出力:

申し訳ありません、クッキーは売り切れです

→ 在庫確認関数があれば、売り切れに気づいて悲しむ前に対策できます。

この関数では、指定されたお菓子の在庫があるかどうかをチェックし、適切なメッセージを戻り値として返しています。

3. データの蓄積・加工

例えば、注文リストを作成する場合:

def add_to_cart(cart, item, quantity):
    cart.append(f"{item} x {quantity}")
    return cart

shopping_cart = []
shopping_cart = add_to_cart(shopping_cart, "マカロン", 2)
shopping_cart = add_to_cart(shopping_cart, "ケーキ", 1)
print(shopping_cart)

出力:

['マカロン x 2', 'ケーキ x 1']

🛒「ついついカートに入れすぎてしまう…」
→ 関数がうまくカートを管理してくれるので、お菓子の爆買いを防げるかも!?

関数の戻り値を使って、リストを更新し、データを蓄積して処理を続けることが可能です。

4. 他の関数との連携

関数の戻り値を別の関数の入力(引数)として使用することで、処理を組み合わせられます。

def discount_price(price):
    return price * 0.9  # 10%割引

def final_total(price, quantity):
    discounted = discount_price(price)
    return discounted * quantity

total = final_total(200, 3)
print(f"割引後の合計金額: {total}")

出力:

割引後の合計金額: 540円

✨「割引って嬉しい!…いや、買いすぎる理由が増えた!😆」

この例では、最初にdiscount_price関数で割引を適用し、その戻り値をfinal_total関数で受け取って最終的な合計金額を算出しています。

戻り値に関する注意点

関数の戻り値を扱う際には、以下の点に注意が必要です。

1. 戻り値がない場合

関数にreturnがない場合、デフォルトでNoneが返される。

例えば:

def greet(name):
    print(f"こんにちは、{name}さん!")
    result = greet("太郎")
print(result)  # 出力: None

None が出力されり。

2. 複数の戻り値を返す

Pythonではタプルを使って複数の値を返せる。

def get_snack_info():
    return "チョコレート", 5
snack, quantity = get_snack_info()
print(f"{snack}{quantity}個あります")

3. 戻り値のデータ型の確認

期待したデータ型が返ってくるかどうかを考慮し、適切に処理する必要がある。

例えば、数値を期待していたのに文字列が返ってくるとエラーの原因に。

まとめ

  • 引数とは?
    関数に情報を渡すための「注文票」のようなもの。

  • 戻り値とは?
    関数の処理結果を受け取る「お菓子」のようなもの。

  • 戻り値を活用することで:
    計算結果の取得や、データの加工・蓄積ができる。
    他の関数と連携し、プログラムの柔軟性を高める。
    条件による分岐処理など、より高度な制御が可能。

引数については以下の記事を参考にしてください。

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?