先ほどの「関数化+return」で一気に抜ける方法をさらに応用して、見つけた値を return で呼び出し元に渡すことができます。これにより「探索して見つかった値を使う」処理が簡単になります。
サンプルコード
def search_value():
for A in range(1, 6):
for B in range(1, 6):
for C in range(1, 6):
result = A * B * C
if result % 2 == 0: # 偶数はスキップ
continue
if result == 45: # 特定条件で終了
return (A, B, C, result) # 見つけた値を返す
return None # 見つからなかった場合
# 呼び出し側
found = search_value()
if found is not None:
A, B, C, result = found
print(f"見つけた! A={A}, B={B}, C={C}, result={result}")
else:
print("見つからなかった")
Python実行結果
見つけた! A=3, B=3, C=5, result=45
解説ポイント
- return (A, B, C, result)
→ 見つけたときに「値のセット」を返す。タプルでまとめると便利。 - 呼び出し側で受け取る
→found = search_value()のように受け取り、展開して使える。 - 見つからなかった場合
→Noneを返すことで「失敗した」ことを明示できる。
応用の場面
- 探索処理: 配列や表から条件に合う値を返す
- 検索機能: ユーザー入力に一致するデータを返す
- ゲーム処理: 勝利条件を満たしたときに「勝ち手」を返す
まとめ
- 関数化+return は「一気に抜ける」だけでなく「値を返す」ことでさらに便利になる。
- 見つかった値を返す → 呼び出し側でそのまま利用できる。
- 見つからなかった場合は
Noneを返すのが定番。


