Python 基礎 第11回 関数

目次

関数とは

Python には一定の処理をまとめて記述する「関数」という機能が用意されています。この関数という機能を利用すると、複数の処理をまとめていつでも何度でも呼び出すことが出来るようになります。下記のコードを見てみましょう。

price = int(input("飲み会のお会計を入力してください>>"))
participants_number = int(input("飲み会参加人数を入力してください>>"))
quotient = price // participants_number #priceをparticipants_numberで割った商を求める
excess = price % participants_number #priceをparticipants_numberで割った余りを求める

print("1人当たりの金額は", quotient, "円です")
print("余りの", excess, "円は", "ジャンケンで負けた人が払いましょう")

下記のコードは、飲み会の金額と参加人数をキーボードから入力すると、1人あたりの金額と端数の金額を算出してくれるコードです。この処理を連続で5回実行したい場合、関数という機能を利用しない場合はこのコードをコピーして5回分記述するしかありません。

関数を使用しないことのデメリット

単純に上記のコードを5回続けてファイルに記述すると、全体の見通しが悪くなります。また、コードを記述したあと、割り勘算出の処理を変更したくなったとしたらどうなるでしょうか。5回分の該当箇所を修正しなければならず非常に煩雑な作業が発生します。

では、関数という機能を使った場合どのような記述になるのでしょうか。下記のコードを見てみましょう。

def separate_check():
    price = int(input("飲み会のお会計を入力してください>>"))
    participants_number = int(input("飲み会参加人数を入力してください>>"))
    quotient = price // participants_number 
    excess = price % participants_number 

    print("1人当たりの金額は", quotient, "円です")
    print("余りの", excess, "円は", "ジャンケンで負けた人が払いましょう")

separate_check()
separate_check()
separate_check()
separate_check()
separate_check()

上記は割り勘をするコードを関数化し、5回呼び出す処理を行っています。記述が少なく済むうえ、処理内容を修正したい場合も、関数内の該当箇所を修正するのみで済みます。

このように関数という機能を使用することによってコードの「見通しが良くなる」「保守性(修正のしやすさ)が高まる」「記述の効率性が高ます」といったようなメリットがあります。

関数の定義方法

関数という機能の利用方法は

①関数の定義
②関数の呼び出し

の2ステップです。
関数の定義方法は下記のとおりです。

def 関数名 (引数リスト) :
~ 関数に処理させたい内容 ~
return 戻り値

def という記述のあとにコロン( : )、関数に処理させたい内容はインデントを付けるという部分に注意してください。
( )の中に記載されている「引数」、returnのあとに記述されている「戻り値」についてこの後使い方と解説をしていきます。

引数

引数を用いることによって、関数を呼び出す際に「呼び出し元から関数内に何か情報(値)を渡し、その値に応じた処理させる」ことが出来ます。さっそく引数を使ったサンプルコードを見てみましょう。

def greeting(name):
  print(name,"です。よろしくお願いします。")
  
greeting("太郎")

上記のコードを実行すると、ターミナルには

太郎 です。よろしくお願いします。

と出力されます。まず、関数名「greeting」に続く( )の中に記載している変数nameに注目してください。
この変数は、次の行から始まる関数内の処理で用いることが出来る変数として定義されています。よって、print( )の中にnameという変数を指定し、エラーが起きることなく関数を呼び出すことができているのです。

次に、関数「greeting」の呼び出し文を見てみましょう。呼び出しの際に、( )の中に文字列の「”太郎”」を記述しています。このように関数を呼び出すと、関数定義の際に記述した変数nameに”太郎”が代入された状態で関数内の処理が実行されます。

この引数は、1つだけではなく複数指定することもできます。では、複数の引数を用いて冒頭に紹介した割り勘算出プログラムを定義してみましょう。

def greeting(first_word, name):
  print(first_word, name,"です。よろしくお願いします。")
  
greeting("こんにちは", "太郎")

上記のコードを実行すると、ターミナルには

こんにちは 太郎 です。よろしくお願いします。

と出力されます。greeting(“こんにちは”, “太郎”)という呼び出しを行うことによって、関数内の処理に用いられる変数first_wordにstr型の”こんにちは”、変数nameにstr型の”太郎”が代入された状態で関数が実行されます。

また、関数の定義時に関数名の横の( )に記載した変数名first_wordやnameを「仮引数」、関数呼び出し時に実際の値として記載したstr型の “こんにちは” や “太郎” を「実引数」と呼びます。

このように、関数を定義し、呼び出す際は引数を用いることでより柔軟な処理を関数にさせることが出来るようになります。

戻り値

戻り値を用いることによって、関数の呼び出し元に関数本体から特定の情報を返すという仕組みを実現することが出来ます。戻り値を用いた関数の定義、呼び出しのコードを見てみましょう。

def int_plus(num1, num2):
    num3 = num1 + num2
    return num3

num = int_plus(10, 15)
print(num)

上記のコードを実行すると、ターミナルには

25

という出力がされます。実引数で関数に渡した10と15という整数が足された数が出力されています。このように関数から返却される情報を戻り値と呼びます。

戻り値を使うには、この記事の冒頭で紹介した return を関数ブロックの最後に記述する必要があります。return を記述すると、その次の行に関数内の処理の記述が続いていたとしても処理が終了して呼び出し元に処理が戻るようになっているため注意が必要です。

そして、関数の呼び出し文にも注意が必要です。
return 文を含む関数の呼び出しは基本的に

変数名 = 関数名(引数1, 引数2,…)

のように、「変数名 = 」の記述の後に呼び出し文を記述する必要があります。return 文で返却される値を受け取る受け皿のようなものだと考えましょう。

ここまでで、関数の基本的な定義方法や使い方の紹介は終了です。次の記事では、関数のより応用的な使い方について紹介していきます。

Python に関するその他の記事一覧はこちらから。

(Visited 44 times, 1 visits today)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

株式会社NEUGATEは、都内で企業研修や職業訓練を運営している会社です。主に、IT系の教育事業に力を入れています。
この記事は、株式会社NEUGATEの教育事業部が執筆をしています。

企業ホームページ:https://neugate.co.jp/

コメント

コメントする

目次