どうも。只今Pythonについて勉強してるMarnyです。
勉強してて、疑問に思った**「戻り値」**について、自分の勉強も兼ねて説明していきます。(間違いがあったら指摘お願いします(笑))
#戻り値とは (return)
そもそも戻り値とは、
「関数の呼び出し元に、関数本体から特定の情報を返す。」
というのが定義っぽいです。
例として、以下のプログラムを実行しました。
def num():
print("実行されました")
num()
↓実行結果
実行されました
これは、単に**「def」**コマンドで関数を定義し、呼び出した形になります。
では、以下のプログラムを実行すると、結果はどうなるでしょう。
def num(a,b):
c = a*b
print(num(2,5))
結果は以下のようになります。
None
結果は「10」と見せかけて、None…
???となりますよね。(笑)
なぜこうなるかというと、num関数をa=2,b=5で呼び出し、c=a*bが実行されましたが、print文からしては、**num(2,5)という内容なので、cという情報がないのです。ここで使うのが戻り値(return)**です。
returnを入れるとこのようになります。
def num(a,b):
c = a*b
return c
print(num(2,5))
結果は
10
とちゃんと2*5が適用され、10が出てきました。
僕もこれを知った段階でもいまいち理解できてませんでした。(笑)
なので、以下のようにプログラムを書き換えてみました。
def num(a,b):
c = a*b
print(c)
print(num(2,5))
このように、num関数内にprint文を追加し、実行してみると以下のようになります。
10
None
ちょっとわかりやすくなりました。(多分)
num関数自体にprint文があるので、10の値とNoneという結果になりました。
##最後に
自分も先ほど勉強し、すぐに書いたものなので間違っているところがあるかしれません。なので、参考程度にかる~くという感じで…(泣)