【Python入門】今さら聞けない関数の使い方まとめ|return・引数など

普段Pythonで書かれたプログラムを見ていると度々returnといった文字やdefといった文字を見かけると思います。

しかし、詳しくどんなことをするものかを理解していない人は意外と多いのではないでしょうか?

なので今日はそんなみなさんに

  • 【基礎】プログラミングでいう関数とはそもそも何か
  • 【基礎】さまざまな関数の使い方
  • 【発展】returnとprintの違い

について詳しく丁寧に説明しようと思います。Python初学者の方に参考になれば幸いです!

※ この記事のコードはPython 3.7で動作確認しました。

そもそも関数とは

そもそも関数とは何なのかよくわからないという人もいるのではないかと思います。関数とは、ある特定の処理をひとまとまりにしたもののことです。

Pythonではdefに続いて関数を宣言します。

例えばdef samurai()とすればsamuraiという関数が宣言されたことになります。defはdefineからきていて和訳すると定義するという意味になります。

そして()の中には引数を入れることができます。引数とはこのデータを使って処理してください、と関数に受けわたす値のことを指します。

そして、関数の中の処理が引数を使って行われた後に返ってくる値を戻り値と言います。戻り値はreturn hogeという形でreturn文を用いて記述します。

つまり、引数は関数へ材料として与える値、そしてその結果として返ってくる値が戻り値です。

文章で説明してもわかりにくいこともあるかと思いますので、次は簡単な例をあげ様々な種類の関数について実際のコードを交えて説明したいと思います。

さまざまなタイプの関数をご紹介

関数では引数や戻り値は省略できる場合は記述する必要はありません。

つまり、関数は大きく分けて

  • 引数のある関数
  • 引数のない関数
  • 戻り値がある関数
  • 戻り値がない関数

4つに分類することができます。

一つずつ見ていきましょう。

引数が無い関数

まずは引数のない関数から説明します。

これはsamuraiという関数を宣言しました。

先ほど述べた通り()には本来引数が入るのですが必要ないので省略しました。
結果を見ると、

はい、4行目でこの関数を呼び出していますが引数がなくてもうまく機能していることがわかります。

引数のある関数

コードから見ていきましょう。

これは(a,b)という引数を与えていますね。そして、4行目でこの引数に(2,5)という実数を代入して呼び出しています。

因みに引数は文字だろうと文字列だろうと数字だろうとなんでも与えることができます。

結果をみてみると、

引数をうまく用いて機能したことがわかります。
また、関数に引数を渡す処理として、渡された値を元に分岐処理を行う場合に、関数に引数を渡すことが多いです。

結果は以下のとおりです。

戻り値のない関数

次は戻り値のない関数をみてみましょう。

詳しくは後述してありますが戻り値とは再利用したい値があるときに使用するので再利用の予定がなければ値を返すreturnは必要ありません。
結果をみてみると、

はい、ここは端折っても良かったのですが一応です。

戻り値のある関数

次は戻り値のある関数をみてみます。

ここが一番難しくて一番大事なので、ゆっくりとコードを読み解きながら見ていってください!

以下のコードを見てください。

このコードをみてどんな結果が出力されると思いますか?

さっきと同じようにa*bを計算してprintしているので10でしょうか?

結果をみてみましょう。

Noneと表示されました。
これはa*bの計算をしてもreturnを使って値を戻してやらなかったため、この関数からは何も戻ってきてませんよ、という意味のNoneが戻り値としてcに代入されてしまったのです。

計算結果をcに戻してやるにはreturn cとしてやれば良いので正しいコードは、

となり

うまくcに結果が代入できました。

また、returnではTrue、Falseといった真偽も返すことができるのでこちらも例を挙げてみてみましょう。

テストのスコアをaに与えそれが60より大きかったらセーフ(True)、60より小さければ赤点(False)と学校なんかのテストをイメージしてかいてみました。

コードの内容はif文で判定しているだけですが、returnでTrue、Falseを返しているところがここのポイントです。

きちんと判別できているか結果をみてみると

うまく戻り値として機能していますね。

returnとprintの使い方の違いを理解しよう

一通りreturnの使い方を勉強してきましたが、使っていくいるうちに、

printと似たような使い方をしてしまいreturnとprintってどう違うの?

と思ってしまう方も少なからずいます。

ただprintとreturnは全くの別物ですので曖昧に使うことがないようきっちりと理解して使い分ける必要があります。

大前提として、

  • returnは値を返すだけ
  • printはコンソール上に表示するだけ

です。

コンソールとはWindowsであればコマンドプロンプト、MacであればターミナルなどのCUIと呼ばれるもののことです。

このコードを見てください。

結果どちらの関数でもhelloを出力するのですが、見比べてみるとprintとreturnが別物であることはわかると思います。

しかし、コンソール上でコードの作成から実行まで行っている場合はreturnで出力することもできるのでなおごっちゃになっている方も多いことでしょう。

では、値を返すだけとはいっても具体的にreturnとprintをどう使い分けるのかを説明します。

returnを使う大きな理由は、その戻り値をまた他の関数で使用することができるからです。
つまり、returnは出力するために使うのではなく他の関数でその戻り値を使う場合に用いるのが正しい使い方です。

どういうことか実際のコードで交えて解説します。

hello babyと表示されました。

つまり、def baby()でdef hello()の戻り値であるhelloを再利用することができたのです。

因みに、hello関数は呼び出してもコンソール上には何も表示されません。(helloを返してはいるけどprintはされていないから)

このままPythonを学び続けて大丈夫?

なぜPythonを学ぶのか?

あなたがPythonを学ぶ理由は何でしょうか?

  • Pythonが人気だからとりあえず学んでいる
  • AIや機械学習の分野に興味があるから

Pythonは初心者向けの言語と言われています。その理由としてシンプルでわかりやすい構文や、実用的なライブラリが豊富なことが挙げられ、実際に学びやすい言語です。

しかし、もしあなたが機械学習に興味があって、とくに知識も無いまま学習を進めると、挫折する可能性が高いと言えます。

機械学習の分野はプログラミング以外にも、専門的な知識や数学の知識も必要になります。ただなんとなく学習していると早い段階でつまづきやすく、そのまま挫折してしまうなんてことも…。

そのため、挫折しないためには、

  • 最適な学習環境を用意する
  • 必要なライブラリ・ツールを導入する
  • わからないことを質問できるメンターを見つける

などが必要になります。

効率よく学びたいなら、無料体験レッスンがおすすめ

このままPythonを学び続けていいのかな…
まだまだ知りたいことがたくさんある!
もっと詳しくPythonについて知りたい!

といった悩みや願望を持っている方は、弊社「侍エンジニア塾」をご利用下さい。

侍エンジニア塾では、

  • 現役エンジニアによるマンツーマンレッスン
  • キャリアアドバイザーによる転職・就職支援
  • 業界屈指のフリーランス・起業サポート

を受けることができます。

業界屈指のコンサルタントから、効率的な学習方法や仕事獲得術、今後のキャリアまでさまざまな疑問を相談してみませんか?遠方の方でもオンラインで受講できます!お気軽に受講下さい。

侍エンジニア塾
無料体験レッスンを受ける

まとめ

今回は、関数の使い方、戻り値return、引数についての説明をしてきました。

関数とは、

  • 処理をひとまとまりにしたもの
  • 引数は処理に与える材料
  • そして出来上がったものをreturnで戻り値として受け取る


でしたね。

returnは値を返すだけで、他の関数で再利用するために使われprintは出力するためだけに使われるということもしっかりと理解しておきましょう。

今回の範囲は、初学者にはつまずきやすいポイントではないかと思うのでぜひしっかりと自分の手でコードをかいて確かめてみてください!それでは!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

かい

かい

日向徹かこよすぎか

[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説