Atom's tech blog

Pythonを勉強しよう! 関数の戻り値について

f:id:iAtom:20201108092834j:plain

Python初心者の備忘録.....

今回は、関数の戻り値についてです。

戻り値とは

戻り値は「関数」から返ってくる値をいいます。自分はリターン値ともいっています。

関数の作り方次第ですが、戻り値があるとき1つの場合(C言語は1つまで)や、複数の場合が考えられます。

戻り値には、数値や文字列、場合によってはデータアドレス情報など返すことが可能です。

return文

戻り値を返す「return」文を使用します。 この「return」文は、関数で処理終了するときに必要な文になります。下記の一覧のような使い方ができます。

  • 関数内で複数の「return」文があってもよい。
  • 戻り値を変数名、直接値(ex : 100 , 200 , "OK"など)、bool型でTrue、Falseでもよい。
  • 「return」文で計算してもよい。

下記のサンプルコードでいうと、関数は「modoriTest」です。

  • 関数は処理を1つにまとめたもの
  • 関数は「def 関数名」の形で記述する

それでは戻り値の記述方法をみていきましょう。

戻り値が1つのとき

def modoriTest():
    addValue = 100 + 200      
    return addValue

returnValue = modoriTest()
print(returnValue)

# 300

説明をすると、「def modoriTest() 」は関数。 

100+200の加算した値(addValueに結果が入っている)を、「return」文で返しています。

この「def modoriTest() 」は関数宣言しており、誰かが呼ばないと起動しない関数です。

ここでは5行目の「returnValue = modoriTest()」でmodoriTest()の結果返しを、左辺のretrunValueへ保存し、「print」文で標準出力しています。

戻り値が2つのとき

def modoriTest():
    addValue = 100 + 200 
    subValue = 200 - 100   
    return addValue,subValue

retValueAdd,retValueSub= modoriTest()
print(retValueAdd)
print(retValueSub)

# 300
# 100

説明すると4行目の「return」文で二つの変数を「 , 」(カンマ)で区切って返しています。

6行目でその結果を「retValueAdd」、「retValueSub」へ保存し、「print」文で標準出力しています。

使い方は難しくなく、返す順番で返却することで期待した戻り値を返却、取得することができます。

戻り値が2つのうち1つ使わないとき

関数からの戻り値のうち1つは使用しないときは、戻り値を取得する箇所に「 _ 」(アンダースコア)を記述します。

この用途は詳しくわかっていませんが、使って欲しくない変数を明示的に示すことで、誤った参照を防ぐことも一つの用途に挙げられます。

  • 「 _ 」はアンダースコアが正式名称。アンダーバーは和製英語らしい。
def modoriTest():
    addValue = 100 + 200 
    subValue = 200 - 100   
    return addValue,subValue

retValueAdd , _= modoriTest()
print(retValueAdd)

# 300

6行目で戻り値の2つ目をアンダースコアで変数に入れず、使用しないことを明示しています。

戻り値を計算して返すとき

def modoriTest():  
    return  100+200,200-100

retValueAdd,retValueSub= modoriTest()
print(retValueAdd)
print(retValueSub)

# 300
# 100

2行目の「return」文で計算後に戻り値を返すことをしています。