Python

【初心者向け】Pythonの関数について解説!引数や戻り値の使い方とは?

「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の関数について解説しました。
Pythonの関数の基本的な書き方がおわかりいただけたでしょうか?

関数を自分で作って利用できるようになると、長いソースコードも分かりやすく書くことができて、仕事でも役立ちます。
ぜひ関数の使い方を覚えてみてくださいね。

関数の使い方を覚えていくには、色々な関数を自分で作って使ってみるのが近道です。本記事で紹介したサンプルコードを自分で変更してみるなどして、実行結果がどうなるのか色々確かめてみてくださいね。

本記事がPython初心者の方にとって有益なものとなれば幸いです。

プログラミングの家庭教師『Tech Teacher』


引用元:Tech Teacher

「スクールに通い続ける自信がない…」
「時間がなくてスクールに通えない…」

そんな方にはプログラミングの家庭教師『Tech Teacher』がおすすめです。
Tech Teacherはマンツーマン指導なので、生徒様一人ひとりに最適な指導を行うことができます。また、オンライン指導も可能なので、全国どこにいても家庭教師の授業を受けることができます。

Tech Teacherの3つの特徴


生徒様に最適化されたマンツーマン指導
完全マンツーマンの指導なので、生徒様の目的・学習状況・ご要望に合わせて、最適な指導をご提供いたします。

指導力・人柄・相性の優れた教師のご紹介
Tech Teacherには採用率20%の選考を突破した、指導力の高い教師が在籍しています。また、選考では指導力だけではなく人柄も重視しております。

1,000人の教師が在籍!幅広い指導に対応可能
業界トップレベルの1,000人の教師が在籍しています。そのため、幅広い言語・ツール・目的に対応することができます。

家庭教師ならではの5つの魅力


オーダーメイドのカリキュラム
生徒様一人ひとりに習熟度・目的・期間に応じて最適なカリキュラムを提供いたします。

きめ細やかなフォローが可能
生徒様からのご要望にきめ細やかに対応し、学習計画や勉強法などの指導もできるので、普段の勉強も捗ります。

習い事・学業・お仕事との両立が簡単
教室に通う必要がないので親御様の送迎も不要です。授業時間・頻度を生徒様のご都合に合わせて自由に調節することができます。

自分のペースで進められる
生徒様の理解度や意欲に応じて授業のスピードを調節できます。不明点や疑問点は都度立ち止まって解消できるので、着実に理解して進むことができます。

すぐ質問できるから挫折しない
先生を独り占めできるので、周りの目を気にすることなく分からないところをいつでも質問できます。

Tech Teacherへのお問い合わせ

無料体験授業・資料請求のお問い合わせはこちらから

質問のみのお問い合わせも受け付けております。