【初学者向け】Python超入門⑩~関数~

Python超入門
こんにちは、データ分析屋のやじろべえ(@yajirobe_papa)です。
Python超入門第十回です。前回はPythonにおける繰り返し処理について解説しました。
今回は関数について解説していきます。関数を使いこなせるようになるとプログラミングがますます楽しくなってくると思いますよ!
それでは早速やっていきしょう!

関数とは

一言で表すと、「ある処理をひとまとまりにしたもの」です。
データを入れたらあらかじめ決められた手順に従って何かを作ってくれる機能のようなものをイメージしてもらえるとわかりやすいかもしれません。
関数を使うと次のようなメリットがあります。
また、Pythonにおける関数には大きく分けて二つあります。
一つが組み込み関数と呼ばれる関数です。これはPythonが既に作ってくれている関数のことでこれまでの講座で使ってきたprint関数やlen関数は組み込み関数に該当します。
二つ目が自作関数と呼ばれるもので、名前の通り自分で作った関数のことです。また、関数を作ることを通常は「関数を定義する」と言います。

関数の使い方

Pythonでは関数を定義する際に、defを使います。
defの後に関数名を記述し、丸括弧とコロンを書きます。丸括弧の中には引数を入れますが、これは省略もできます。
そして、改行してインデントを空けてから処理する内容を記述します。
最後にreturn文を使うことで関数の外側でも使うことが出来るようになります。
それではコードで確認していきましょう。
まずは最もシンプルな関数の使い方です。
greetを引数として関数jp_helloがgreetを出力する関数です。
In [1]: def jp_hello(greet):
            print(greet)

 

引数に文字列’こんにちわ’を入れてみて実行すると、ちゃんと出力されている事がわかります。
In [2]: jp_hello('こんにちわ')
Out [2]: こんにちわ

 

次に、先ほどの関数を翻訳関数にしてみましょう。’こんにちわ’を入力したら’Hello’と出力し、’Hello’を入力したら’こんにちわ’と出力するようにしてみましょう。
この場合はif文を使うと便利です。
In [3]: def translate(greet):
           if greet == 'こんにちわ':
              print('Hello')
           elif greet == 'Hello':
              print('こんにちわ')

 

translate関数の引数に’こんにちわ’と入力して実行すると、ちゃんとHelloと出力されています。
In [4]: translate('こんにちわ')
Out [4]: Hello

 

先ほどまでの例では文字列を出力する関数でしたが、今度は関数名はcircleArea、引数をradiusとして円の面積を求める関数を次に作ってみます。
関数の外でも使えるように、return文で計算した円の面積を返しておきます。
In [5]: def circleArea(radius):
           c_area = radius * radius * 3.14
        return c_area

 

引数に3と入力して、実行してみるとちゃんと円の面積が計算されている事がわかります。
In [6]: circleArea(3):
Out [6]: 28.26

 

また、関数の引数は複数入力することも可能ですので、それを確認してみます。複数の引数を入力にするときは、引数と引数の間にカンマを入れます。
関数名はtriangleArea、引数をbottom, heightとして三角形の面積を求める関数を次に作ってみます。
In [7]: def triangleArea(bottom, height):
           t_area = bottom * height * 0.5
        return t_area

 

変数bottomとheightにそれぞれ5と10を代入して、triangleAreaに入力して実行してみるとちゃんと三角形の面積が計算されている事がわかります。
In [8]: bottom = 5
        height = 10
        triangleArea(bottom, height)
Out [8]: 25.0

 

まとめ

今回はPythonにおける関数の使い方について解説しました!
少しずつ難易度が上がってきましたが、関数も非常に良く使われる基本的な考え方ですので、是非マスターしておきたいところです!
次回はクラスについて記事にします。
<追記>
第十一回記事更新しました!
それではお疲れ様でした。
タイトルとURLをコピーしました