前回、呼び出し元から関数に引数を渡して、関数内で処理をしてもらう方法をまとめました。
関数を呼び出す際に、もう一つ重要な考え方があります。
それが、今日ご紹介する、戻り値です。
戻り値は、引数で渡された値を関数内で処理し、結果を呼び出し元に返す。というところまでを実行してくれます。
戻り値を使うことによってどういったメリットがあるか?というのは、前回のローカル変数の考え方を思い出してください。
例えば、関数の中に変数が定義されていたとしても、その変数は関数の中でしか利用できない。
それが、ローカル変数の考え方でしたね?!
ですが、その関数の中で処理された結果を、外部(別のプログラム)で利用したい!という時、どうしたら良いでしょうか?
またまた、前置きが長くなってしまいましたが、実際にサンプルコードを見ていただいて、実行結果を確認してみましょう。
目次
そもそも、引数と戻り値とは?
戻り値の基本構文
#(…)内に引数を指定する
#returnの後に戻り値を設定する
#return文の後ろに記載された変数や値を、呼び出し元に返す。
def 関数名称(引数1, 引数2…):
関数内の処理
return 戻り値
#呼び出す時に引数を指定して呼び出す
#ここで宣言した変数が、戻り値を受け取る
変数 = 関数名称(引数1, 引数2…)
- 関数の最終行には【return 戻り値】を記載します。
- 呼び出し元では、変数に呼び出す関数と引数を指定します。
関数の終了位置を意味し、処理の結果を呼び出し元の変数に返します。
引数の時と呼び出し方が違うので注意が必要です。
サンプルコードと実行結果
以前、リストのネストで利用したコードを少し変えてみました。
#選択した2枚のシャツの合計金額を求める関数を作成
#引数としてxとyを受け取る
#xとyは、何番目のリストを指定するか?を示している
#[2]は金額(PRICE)を示す位置なので固定する
def test_func(x,y):
for shirts in cur.execute("select * from clothes"):
test_r = cur.fetchall()
return (test_r[x][2]) + (test_r[y][2])
#answerという呼び出し用の変数に、test_func()を代入する
#引数には1と2を指定する
#ここでの引数が、x=1, y=2 となる
answer = test_func(1,2)
print("合計金額" + str(answer) + "円")
【実行結果】
蛇足(str()について)
変数answerは、test_func関数から計算結果を受け取っています。
そのため、データ型は、int型になります。
一方で、ターミナルに表示したい(print()の中身)は、【”合計金額” 】や【 “円”】のように文字列が含まれています。
こういった場合、データ型が合わず、そのまま連結しようとするとエラーが発生します。
文字列型は文字列型同士でないと、連結ができません。
同じように、int型もint型同士で型を合わせることによって初めて計算処理が実行できます。
そのため、以下のように受け取ったanswerを、文字列型に変換しました。
print("合計金額" + str(answer) + "円")
こうして型変換をすることで、ターミナルに表示することができます。
EOF
戻り値についてまとめました。
引数と組み合わせて、より複雑な処理を実行することができるようになりますので、ご参照いただければ幸いです。
本日も、一緒に勉強してくださって、ありがとうございました!
では、また!
追伸:これからPythonを学ぶなら
これからPythonを学びたい!業務に活かせるように学習したい!という方ならば、まずはUdemyで学習を始めることをお勧めします。
Udemyでは、数多くの講師陣がITの知識やスキルアップのための解説動画を提供していて、現場でも役立つ知識が多数存在します。
特に、流行りもあるのだと思いますがPythonやAWSの講座は数が多く品質が高いものが多いです。
手前味噌ながら以下の記事で、主に初学者の方向けのお勧め講座のレビューをしていますので、ご参考にしていただけますと幸甚です。
戻り値を利用することによって、関数で処理した結果を呼び出し元に返すことができるのです。