【Python 入門】関数① 基本的な関数の定義

数式 サムネイル

今回からはプログラミングにおいて非常に重要な関数の取り扱い方について解説していきます。Pythonで定義できる関数には他のプログラミング言語で見たような汎用的な書き方だったり、Python特有の書き方だったりいろいろございますので、それらについて一つ一つ解説していこうと思います。

関数とは

まず関数とは何かについて説明します。必要ない人は書き方のところまで飛ばしてください。

関数はプログラミング言語だけでなく数学などでもよく耳にする用語だと思いますが、ある値やデータを関数に渡してあげると関数が何らかの処理を施して、その結果できたものを返してくれるものが関数です。イメージをつかみやすくするのであれば素材を基に新しいものを生み出す機械のようなものです。

プログラミングでは特に値を渡さなくても処理を実行してくれたり、処理が行われたからといって必ず何か値を返すわけでもありません。なので処理の一部を切り取ってそれを関数といわれる別の箱に入れ込んだものといったほうがしっくりくるかもしれません。

また、関数には組み込み関数独自関数の2種類存在します。組み込みは予めPythonで用意されている関数の事で、独自定義関数とは変数を定義するのと同じようにエンジニアが自分自身で定義する関数になります。これからお話しするのは後者のユーザー定義関数の内容になります。

関数定義の書き方

Pythonでの関数の定義方法は以下のようになります。

def 関数名 (引数1 , 引数2, … 引数n) :

     処理をブロック内に記載

     return 戻り値

関数の定義には def文 を使います。defはdefine(定義する)の意味ですね。その後ろにスペースを空けて関数名を定義します。関数名の後ろには括弧”()”を記載し、その中に引数を書きます。引数の数は何個でもよく、100個でもよければ、0個でもよいです。そして “:”でブロック化しブロックの中に処理を記載します。処理の最後に「return 戻り値」と書いてありますが、これは関数が呼び出し元に返す値を意味します。

returnと引数については次回からの記事で詳細に解説いたしますので、今回はそれぞれがないパターンで確認します。なお、引数及び戻り値がない関数の書き方は以下のようになります。関数名の後ろの括弧は0個の場合でも必要です。よく書き忘れてしまうので注意してください。

def 関数名 () :

     処理をブロック内に記載

関数の呼び出し

関数はただ定義するだけでは使用できません。呼び出してあげる必要があります。

呼び出し方についてはいたって簡単で以下のように書きます。

関数名()

関数に引数が2つ指定されている場合は、以下のようになります。

関数名( 引数1 , 引数2 )

これが関数の呼び出し方です。例えば “Hello” という関数を使用し、引数指定がない場合は「Hello()」として呼び出してあげるだけで”Hello”の中に書いた処理を実行することができます。

def Hello () :

     print(“Hello!”)

Hello()

→Helloと出力される。

関数の定義例

それでは実際に関数の定義の例を見てみます。

上記のコードは署名を書き出すための関数です。関数は引数等を使って使用することが多いので、引数なし、戻り値なしの関数は適当にこのぐらいでよいかなと思います。

なぜ関数を定義するのか

最後に関数の必要性について説明します。関数について上記では処理の一部を切り取ったものを関数という箱に入れ込むといった説明をしました。そのため、「別に関数として定義しなくてもプログラムを組むことができるのでは?」と思う方もいらっしゃると思います。

実際関数として定義しなくても実現したい処理を実装することはできます。では必要性は何なのかというのを少し説明したいと思います。

何回も書く必要があるプログラムを一回書くだけでよい

例えば足し算をしたいプログラムを書いた箇所が2か所あったとします。その時は2回足し算をするプログラムを書けばよいですが、それが3か所、4か所と増えていったらどうでしょう。何回も足し算をするプログラムを書くのは面倒くさいですよね?またコード自体も長くなってしまいます。また足し算とか簡単なものでしたらよいですが、膨大な計算をするプログラムだったら余計にしんどさが増します。

そこで足し算や、より膨大な計算をする処理を一つの関数として定義してあげれば、その処理を書く回数は一回で済み、あとはその計算を行うたびに関数を呼び出してあげるだけで済みます。

いくつものプログラムから呼び出されるような再利用性の高い処理を関数として定義し、コードを書く手間を省けるのが関数の良いところその1です。

コードが短くなる

何回も書くはずだったコードが1回の記述でよくなるということはコード自体も大幅に少なくすることができます。

これにより可読性も上がりますし、ファイルの大きさも抑えることができます。これが良いところその2です。

関数の中身を把握する必要がない

関数は使い手がその中の処理は特に意識しなくてよいのが良いところその3です。例えば、ファイルの読込を行ってくれる関数があったとして、使い手はその中がどうなってるのかわからなくても、ファイル名さえ関数に渡せばそのファイルを読み込んでくれるということだけ理解してれば関数が使えてしまいます。実際PythonではAIの原理がよくわからなくても関数の使い方さえ知っていればAIが組めてしまいます。

上記のようなメリットがあるから関数として定義してあげることが大事なわけです。

 

関数を定義するメリット3つ!
1. 同じコードを何回も書く手間が省ける。

2. コードが読みやすくなる。

3. 関数を使う際中身の処理を意識しなくても目的の処理を行える。

いかがでしたでしょうか。関数について使い方とメリットについてわかっていただけたなら幸いです。

今回はここまでです。

お疲れ様でした。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

本業ではPHPを使ったWEBアプリやJavaを使用した基幹アプリを作成しております。Pythonは個人的に勉強しており、E資格を取ったりしたおかげで、業務でAIの研究とかも任されるようになりました。学習のアウトプットのために本サイトを運営しておりますが、これからPythonを学ぶという人のお役に立てればいいなと思います。わからないことや調査して記事にしてほしいことがございましたらご連絡いただけると幸いです。

コメント

コメントする

目次
閉じる