【Python入門】関数で複数の値を戻り値として得るには?

tensorflow インストール

前回の記事では引数を使って
外部の値を定義した関数に引き渡す方法について解説しました。

詳しくはこちらの記事をご覧ください。
【Python】関数を定義する方法・呼び出しや引数についても解説

今回は戻り値について解説します。

戻り値は返り値ともいいます。
引数とは逆の考え方になります。

戻り値は関数から戻ってくる値のことです。

つまり、関数に入ってくる値を引数、
関数から出ていく値を戻り値というわけですね。

それでは戻り値について詳しくみていきましょう。

スポンサードリンク




【Python入門】戻り値の基本

戻り値

関数の戻り値について理解するために
まず例題1をご覧ください。

#例題1
def daisuki():
    x = 'チワワが大好き'
    return x
    
y = daisuki()
print(y)

それでは解説していきます。

def daisuki():
    x = 'チワワが大好き'
  return x

ここで、def daisuki():
とすることで、daisukiという関数を定義しました。
defが定義するという意味になります。

それから、
x = ‘チワワが大好き’と
変数xに『チワワが大好き』という文字列を代入しています。

そのあと、
return x
とありますが、ここが戻り値として重要です。

daisukiという関数の内部でreturnがあると
そのあとの変数xが関数の外に出ていきます。

これにより、
x = ‘チワワが大好き’
がdaisukiという関数の外に出ていきました。

次に

y = daisuki()
print(y)

で、中に『チワワが大好き』という文字列が入っている
daisuki()という関数が変数yに代入されます。

そしてprint(y)によって『チワワが大好き』
という文字列が表示されます。

実際に実行してみると
『チワワが大好き』と表示されるはずです。

戻り値

これが戻り値の考え方です。

引数と少し似ていますが
やっていることはまったく逆です。

詳しくはこちらの記事をご覧ください。
【Python】関数を定義する方法・呼び出しや引数についても解説

スポンサードリンク




【Python入門】引数と戻り値を一緒に使う書き方

引数と戻り値の組み合わせ

まず先に引数と戻り値の基本的な違いを見ておきましょう。

例題2は引数の具体例です。

#例題2
def daisuki(a):
    print(a)
     
daisuki('ブルドッグ')

例題2を実行すると『ブルドッグ』と表示されます。

これに対して例題1は戻り値です。

#例題1
def daisuki():
    x = 'チワワが大好き'
    return x
    
y = daisuki()
print(y)

実行すると『チワワが大好き』と表示されます。

引数と戻り値の明らかな違いは

引数は

def daisuki(a):
    print(a)

と定義した関数のところで具体的な値がありません。

これに対して戻り値は

def daisuki():
    x = 'チワワが大好き'
    return x

定義した関数のところで
変数xという形で具体的な文字列が存在しています。
また、戻り値の場合にはreturnがあって
外部に具体的な文字列を出しています。

では、ここからが本題です。

戻り値と引数を同時に使ってみましょう。

#例題3
def daisuki(x, y):
    z = x + y
    return z
    
a = daisuki('チワワ', '大好き')
print(a)

b = daisuki('ブルドッグ', '素敵')
print(b)

まず例題3では
def daisuki(x, y):
daisukiという関数を定義しつつ
()の中にあるxとyという値が引数となります。

そして

    z = x + y

によって、引数であるxとyを足して変数zに代入しています。

それから変数zの値に対して

    return z

戻り値として返しています。

次に

a = daisuki('チワワ', '大好き')
print(a)

こんな感じで関数daisukiを呼び出すときに
『チワワ』、『大好き』という文字列を渡して
戻ってきた値は変数aに入ります。

そしてprint(a)で表示させます。

この時点で実行すると
『チワワ大好き』と表示されます。

文字列と文字列を+で足すと
文字列が結合されるからです。
文字列の結合についてはコチラの記事で詳しく解説しています。
【Python】文字列を結合・抽出したり繰り返したりする方法

続いて

b = daisuki('ブルドッグ', '素敵')

‘ブルドッグ’と ‘素敵’を引数として渡して
戻ってきた戻り値は変数bに代入されます。

実行すると『ブルドッグ素敵』と表示されます。

実際に実行してみましょう。

引数と戻り値

スポンサードリンク




【Python入門】複数の値を戻り値として得る方法

戻り値 複数

当ブログに『Python 戻り値 複数』という検索で
訪問してくださる方は多いです。

ただ、戻り値自体は1つしか設定することができません。
ですが、やり方によっては複数の値を
戻り値として得ることは可能です。

実際にやってみましょう。

#例題4(タプルを使うことで複数の戻り値を得ることができる)
def daisuki(x, y):
    a = x + y
    b = x * 2 + y
    return (a, b)
    
z = daisuki('とっても', '大好き')
print(z)

タプルを使うことで複数の戻り値を得ることができます。

「タプルって何?」
と気になる方はこちらの記事をご覧ください。
【Python】タプルを使う3つのメリットとリストとの違い

ここではとりあえず()でくくればタプルになる
と思っていてください。

def daisuki(x, y):

ここで引数としてaとbの2つを受け取ります。

それから、

    a = x + y
    b = x * 2 + y

変数aにxとyを足したものを代入し
変数bに変数xを2回実行したものとyを足して代入します。

そして変数aとbを()でくくってタプルにして戻り値にしています。

    return (a, b)

それから

z = daisuki('とっても', '大好き')
print(z)

daisukiという関数を呼び出して
ここでは引数として’とっても’, ‘大好き’を渡します。
で、戻ってきた戻り値を変数zに代入し
print文で表示させています。

実行すると
(‘とっても大好き’, ‘とってもとっても大好き’)
と2つ表示されていますね。

b = x * 2 + y
はxである『とっても』を2回、
yである『大好き』を1回にして
+で結合させています。

なので『とってもとっても大好き』となります。

複数の戻り値

この記事でここで終わります。
引数と戻り値を利用することで
より複雑な関数を作成することができます。

pythonを学ぶならこちらの動画講座がおすすめです

Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学び、実践的なアプリ開発の準備をする

かなり長い講座名ですね。
わかりにくそうな感じがします。

ですが、pythonの基礎からしっかりとわかりやすく教えてくれます。

また、きれいなコードを書くための方法についても
教えてくれるので、周りが「どうやってそんなコードを書いてるの?」
とびっくりされるようになるかもしれません。

それからWebアプリケーション開発の基本的なテクニックについても
教えてくれます。

なので、pythonを使ってwebアプリケーションを作ってみようと
思っている方にもおすすめです。

値段は時期によって違います。

詳しくはこちらをご覧ください。


みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習

この講座ではまずpythonの基礎を学びます。
次に人工知能について学んでいきます。

そして最終的にはpythonを使って文字認識や株価分析ができるような技術力が身につくようになっています。

単純に教科書的なpythonを学ぶのではなく
仕事でも使えるスキルを身につけたい方におすすめの講座です。

なのに値段は恐ろしいほど安いです。
時期によって値段は変動するので
詳しくはこちらをご覧ください。


Pythonで機械学習:scikit-learnで学ぶ識別入門

この動画講座は広島大学准教授の先生が担当しています。
機械学習が専門の先生です。

すごく深い知識が身につきます。
大学の先生の講義って難しそうってイメージがあるかもしれません。

でもそんなことはありません。
すごくわかりやすいです。

pythonで機械学習のスキルを身につけたい方におすすめです。
値段は時期によって違いますが、かなり、良心的な価格になっています。

詳しくはこちらをご覧ください。

関連記事

ページ上部へ戻る