defを使いこなす①return(戻り値)
pythonのコードが少しかけてくると、defを使って書いている人をよくみかけて、羨ましくなる。defの基礎を学びたい!
def(関数)とは何だ?
そもそも関数とは何だ?というお話。
中学の頃関数を習いましたが、その考えそのものです。
例えば、
y=3x
という式があった場合、yの値はxの値によって変化します。この関係を『yはxの関数である』といいます。
で、高校になると数学は単純にyがf(x)に変わります。見た目は難しそうになりますが、内容は同じ。
f(x)=3x (内容はy=3xと一緒)
f(x)を関数、xを変数といいます。
このf(x)のxに数値を入れると『=3x』のxが変化するため、例えばxを2にすると、
f(2) = 3 × 2
f(2)=6
xを10にすると、
f(10) = 3 × 10
f(10) = 30
となるわけです。
プログラムの世界では、変数xのことを「引数」といいます。
「y = 3x + b」という関数の場合は、yの値は、xとbの値によって変化します。そのため「f(x, b) = 3x + b」と表します。
例えば、f(2, 5)なら、12になります。
んで、関数にするとどんなメリットがあるのか?という話。
関数のメリット
箇条書きにしてみました。
・コードの処理を『一連の群』として一目で分かる
・同じコードを何度も書かなくてよい
・コードが効率的かつ他の人から見ても理解しやすくなる
というメリットがあります。
def分の作り方
コードは以下のようになります。かみ砕いた詳細を下記に記します。
def 関数名(引数1, 引数2, ..., 引数n):
関数定義(処理文)
関数定義(処理文)
return 戻り値
def文
defはdefinitionの頭の3文字を取ったもので、これから関数を定義することをPythonに伝えます。
関数名
defの後に半角スペースを空けて、自分で決めた関数名を書きます。
引数(ない場合もある)
丸括弧 () の中に引数を入力します。引数を複数設定する場合はカンマ区切で。関数によって、引数がある場合とない場合があります。最後にコロン( : )を書き、改行します。
関数定義(処理文)
半角スペース4つのインデントを入れます。ここに関数の機能を定義する処理文を書いていきます。
return(戻り値/返り値、ない場合もある)
処理文の最後に、returnを書いて、この関数を呼び出したときに何を出力するかを定義します。
returnのある関数
return(戻り値)のある関数を作ってみましょう。
def func1():
return "Hey!"
shift+enter で実行しても、何もでてきません。
この関数を呼び出すには、func()と書きます。
func1()
実行結果:
'Hey!'
このようにreturn文で戻り値を定義しておくと、関数を呼び出した時にそれが返ってきます。
returnのない関数(多くの場合、print()で表す)
returnのない関数をつくってみます。
同じ内容ですが、return文を使わずに、print()を使っています。
def func2():
print("Hey!")
shift+enter で実行しても、何もでてきません。
この関数を呼び出すには、func2()と書きます。
func2()
実行結果:
'Hey!'
デジャブ?と思うかもしれません。
アウトプットが同じなので、違いはないように感じてしまいます。
しかし、全然違うのです。
returnある・なしの違い
returnがあるfunc1は、変数に代入することができます。
a=func1()
print(a)
実行結果:
'Hey!'
ところが、returnなしのfunc2は、変数に代入することができません。
a=func2()
print(a)
実行結果:
None
return文で書いた処理は、その関数を呼び出した時に、戻り値として出てきます。ない場合は、処理文が実行されるだけで戻り値はありません
この記事が気に入ったらサポートをしてみませんか?