「Pythonの関数ってどうやって使えば良いの?」
「そもそも関数を使うメリットは何?」
本記事ではこのような疑問を解決します。
プログラミングにおいて関数は非常に重要な役割を果たします。関数を使いこなせるようになると、難しい処理もわかりやすく書くことが可能になり、より高度なアプリやゲームなどが作れるようになりますよ。
本記事ではPythonの関数の使い方についてまとめました。
関数とは何か?といったことから、初心者が混乱しがちな「引数」や「戻り値」の意味についても解説してあります。
ぜひ本記事を読んで、Pythonの関数をマスターしていきましょう。
Pythonにおける関数とは
まず「そもそも関数とは何か」を説明していきます。
Pythonにおいて関数はどういった位置づけなのか、そもそもなぜ関数が必要なのか。関数の基礎を初心者でもわかるように説明していますので、ぜひご覧ください。
関数とは何か
関数とは「データを渡すと、そのデータに対応した何らかのデータを返すもの」のことです。一度作った関数は使いまわせるので、一連の処理をひとまとめにして1つの関数にしておくことが多いです。
たとえばPythonを使って、掲示板を作るとします。
ユーザーがサイト内の様々な場面で掲示板に「書き込む」という動作を行いますよね。この「書き込む」処理をプログラム内でいちいち書いていては大変です。
そこで「書き込む」処理を1つの関数にまとめるようにします。
そうすればその関数を使うだけで「書き込む」処理を行うことができて、プログラムのソースコード量を大幅に減らすことができるのです。
「書き込む」以外にも「ログイン」「書き込み削除」などの処理もそれぞれ関数にしてまとめておけば、より効率的なソースが書けるようになりますね。
このように、同じ処理をプログラム内で何回も使うときに役に立つのが関数です。
関数には大きく分けて2種類あります。
- 組み込み関数
- ユーザー定義関数
この2つはまったく異なるものなので、それぞれ解説していきますね。
組み込み関数
「組み込み関数」とは、Python側であらかじめ用意されている関数を指します。
プログラマはいつでもソース上で組み込み関数を呼び出して使うことができます。Pythonでは多くの組み込み関数が用意されており、これらを使うことで高度な処理を楽に書くことが可能です。
たとえば、Pythonには「len()」という組み込み関数が用意されており、これを使うことで、文字列の長さを取得することができます。
他にも組み込み関数は色々ありますが、ここではすべてを紹介することはできません。他の関数はぜひ自分で調べてみてくださいね。
このように、あらかじめ用意されている関数を組み込み関数と言います。
ユーザー定義関数
Python側に用意されている関数ではなく、プログラマが自分で作って定義した関数を「ユーザー定義関数」と呼びます。
Pythonでは「def 関数名(引数名):」と記述することで関数を作ることができます。詳しいユーザー定義関数の作り方は後で詳しく説明しますね。
ユーザー定義関数もコード内のどのタイミングでも呼び出すことができます。
ユーザー定義関数を作ることで、同じ処理を何度も記述しなくてよくなりますし、コード全体も綺麗にまとまります。
また、後で他の人がコードを見直すときも、関数で処理をまとめてある方が読みやすくなりますね。
自分で作る関数が「ユーザー定義関数」、あらかじめ用意されている関数が「組み込み関数」と覚えておきましょう。
関数の基本と定義方法
Pythonでは次のようにして関数を定義することができます。
def 関数名(引数名1, 引数名2, ……): 関数内で行う処理1 関数内で行う処理2 …… return 戻り値 |
Pythonでは「def文」を使って関数を定義します。そして関数内で行いたい処理をdef文の中に書いていきます。
このとき、関数はいくつかの「引数」を持つことができます。引数を使うことによって、関数にデータを渡すことが可能になるのです。
作成した関数を呼び出すときは次のように書きます。
関数名(引数1, 引数2, ……) |
これだけで関数を呼び出すことができますよ。
関数を呼び出すと関数内のソースが処理され、処理が終わったら関数から「戻り値」が返ってきます。戻り値とは「関数の実行結果」のことです。
次のように記述することで、関数の戻り値を変数に格納することができます。
変数名 = 関数名(引数1, 引数2, ……) |
ユーザー定義関数はこのようにして定義するのが基本となります。
関数の実践方法・具体例
それでは関数の実践的な使い方を見ていきましょう。
関数を使いこなせてはじめて一人前のプログラマと言えます。
関数の使い方はしっかりと覚えておきましょう。
関数の基本的な使い方
実際に関数を作って動かしてみましょう。
Pythonファイルを作成し、以下のように記述してみてください。
def tashizan(a, b): print(a+b)tashizan(1,2) |
◯実行結果
3 |
ここでは「tashizan」関数を定義して、足し算を行っています。
これぐらいならわざわざ関数を使うこともないのですが、簡単な例として取り上げてみました。
まず「def tashizan(a, b):」と記述することで、tashizan関数が定義されます。tashizan関数は2つの引数「a」「b」を持っています。そして「print(a+b)」の部分で2つの引数を足して出力していますね。
その下の「tashizan(1,2)」でtashizan関数を呼び出しています。カッコ内にコンマで区切って「1」「2」と記入することで、tashizan関数の引数「a」「b」にそれぞれ「1」「2」が代入できます。
そのため「print(a+b)」はここでは「print(1+2)」となり、「3」が出力されているのです。
これが関数の基本的な使い方です。
もう1つ簡単な例を紹介しましょう。
def kakezan(a, b, c): return a*b*can = kakezan(3,4,5) print(an) |
◯実行結果
60 |
今度は「kakezan」関数を定義して、掛け算を行っています。
今回は「a」「b」「c」の3つの引数を使っていますね。上の例では「kakezan(3,4,5)」で3と4と5を渡しているので3*4*5で「60」が出力されているのです。
先ほどと異なるのは、関数の戻り値を利用していることです。kakezan関数内にはprint関数で出力する処理が含まれていないので、戻り値で積の値を受け取り、関数の外で出力しています。
kakezan関数内の「return a*b*c」で「3*4*5」の値を戻り値として返しています。そして、返した結果を変数「an」に格納しています。後はprint関数でanの値を出力していますね。
このように、関数の戻り値を利用することで関数の実行結果を取得して利用することができます。
関数を使うときの注意点として、渡す引数の数が、定義された引数の数より多かったり少なかったりするとエラーが発生します。
たとえば
def kakezan(a, b, c): return a*b*can = kakezan(3,4) print(an) |
とするとエラーが発生してしまい、正しくプログラムを動かすことができません。
上記の例では、kakezan関数が定義では3つの引数を取るところを、2つしか引数を渡していません。引数が不足しているのでエラーが出るのです。
引数を渡す場合は必ず数を確認するようにしましょう。
以上が関数の基本的な使い方になります。
後は自分で色々な関数を作ってみてください。
関数から関数を呼び出す
続いて関数の少し応用的な使い方をご紹介します。
ここでは関数から関数を呼び出す方法を解説します。つまり、Pythonでは関数をネストさせることができるのです。
「ネストってなに?」という方のために詳しく説明しますね。
Pythonファイルに、以下のように記述してみてください。
def keisan(): def tashizan(a, b): print(a+b) return tashizanan = keisan()an(1, 2) |
◯実行結果
3 |
上記の例ではkeisan関数の中で、さらにtashizan関数を定義していますね。
「keisan()」でkeisan関数を呼び出すと、keisan関数内の処理がまず動きます。keisan関数内の処理は「tashizan関数を定義する」こと、そして「tashizan関数そのものを戻り値として返す」ことです。
これによって、keisan関数の戻り値を格納した変数「an」は、tashizan関数と同じ働きをする関数になっています。
その証拠に、「an(1, 2)」とすると「3」が出力されました。これはkeisan関数内で定義されたtashizan関数の引数「a」「b」に「1」「2」を渡したときの結果と同じであることを確認してください。
ここで、keisan関数の戻り値は具体的な数値ではなく「関数そのもの」であることに注意してください。
このようにPythonでは関数から関数を呼び出すという少し複雑なことができます。Pythonでは関数もオブジェクトの1つとして扱われるため、こういった書き方もできるようになっているのです。
このような書き方も実践ではよく使うので覚えておきましょう。
Pythonの個別指導なら『Tech Teacher』
引用元:Tech Teacher
このBlogを運営するTech Teacherは、Pythonを学習する社会人を対象に、初心者から挫折した人まで、一人ひとりの目的や学習状況にあわせた個別指導を行っています。
また、オンライン指導も選べるので、自宅でも対面でも受講できます。
一人ひとりに最適化された完全マンツーマン指導を提供
完全マンツーマン指導で着実に身につく!
Tech Teacherでは専任の教師が完全マンツーマン指導を行います。
学習状況や目標をしっかり把握した教師が、生徒様のご要望もふまえながら最適なオーダーメイドの指導をご提供します。
お仕事と両立しながら続けられる!
Tech Teacherなら、受講日時や回数を生徒様のご都合に合わせて柔軟に調整することができます。
そのため、お仕事との両立がしやすく、プログラミング学習を継続的に学習することができます。忙しい合間にプログラミングを学びたいという方におすすめです。
授業料は受けた分だけ!
Tech Teacherでは、生徒様が受けた授業の時間分だけ後払いで請求させていただきます。そのため、気軽にプログラミングの学習を始めることができます。
以下のボタンからさらに詳しい情報をご覧いただけます。
まとめ
本記事ではPythonの関数について解説しました。
Pythonの関数の基本的な書き方がおわかりいただけたでしょうか?
関数を自分で作って利用できるようになると、長いソースコードも分かりやすく書くことができて、仕事でも役立ちます。
ぜひ関数の使い方を覚えてみてくださいね。
関数の使い方を覚えていくには、色々な関数を自分で作って使ってみるのが近道です。本記事で紹介したサンプルコードを自分で変更してみるなどして、実行結果がどうなるのか色々確かめてみてくださいね。
本記事がPython初心者の方にとって有益なものとなれば幸いです。