LoginSignup
0
0

More than 1 year has passed since last update.

Python3について(return[戻り値]について)

Posted at

returnについて

関数の最後にいつも書いてありましたが、あまり意味は分かっていませんでした。
なんとなく理解したので、覚書的に書いておきます。

1.returnがない場合

def aisatsu():
    print('Hello')

x = aisatsu() #xに対して、あなたは今後aisatsu()ですよと指示している
>> Hello

print(x) #xがaisatsu()になっていれば、Helloが出力されるはず
>> None

このようにxにaisatsuを割り当てて、xを呼び出してもHelloはプリントされません。
なぜなら、このaisatsuの関数が直接呼ばれた時でないと関数の中身が動かないからです。
なので、xに関数を割り当ててもdef aisatsu():までしか呼び出されません。(※イメージです)

2.returnをつけた場合

def aisatsu():
    print('Hello')
    return ('Hello') #別の名前で呼ばれた時はこれを返してね

x = aisatsu() #xに対して、あなたは今後aisatsu()ですよと指示している
>> Hello

print(x)
>> Hello

returnをつけると、その関数が別の名前で呼ばれた時は、returnの値を返す。
なので、returnの中を変えると以下のようになる。

def aisatsu():
    print('Hello') #正規の名前ならこっち
    return ('Bay') #別の名前で呼ばれたらこっち

x = aisatsu() #xに対して、あなたは今後aisatsu()ですよと指示している
>> Hello

print(x)
>> Bay

print(x)では、別の名前で呼ばれたので、returnの中身を返している。
returnの中身は計算結果などを保存できるので、次のようなこともできる。

3.計算結果を保存

returnの結果は記憶されるので持ち越すことが出来る。
returnを消すと、計算結果すら出力されなくなる。なぜなら、addはx*xを中でやっているだけで、
printすらしていないので、内部で計算して満足して終わりになります。

def add(x):
    return (x*x)

z = add(3) #zに3×3が記憶される(つまり9)

print(z)
>> 9

y  = add(z) #zに9が記録されているので、9×9になる

print(y)
>> 81

4.最後に

計算結果をどこかで使おうとするのであれば、returnを使い、その関数の結果として何を返すのかを明確にする必要がある。ということを学びました。
最後にreturnが無いと大変だよという例をあげておきます。

def add(x):
    print(x*x)
    return('Hello') #関数名以外で呼ばれた時はこれを返す

z = add(3) #関数名で呼ばれているので3×3がプリントされる
>> 9

print(z) #関数名以外で呼ばれているので、戻り値のHelloがプリントされる
>> Hello

0
0
1

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
0
0