2016年9月14日 更新

【Python講座5】関数(function)

今回は久しぶりにPythonの勉強をしていきます。ところで、Pythonで画像処理をする方法として、OpenCVを用いる方法で以下のような方法がありました。

498 view お気に入り 0
python+OpenCVで顔認識をやってみる(Qiita)

是非試してみて下さい。pythonを使ってOpenCVを利用する為に、環境設定などが大変だったので、後ほど紹介したいと思います。

さて、今回は、Pythonチュートリアルから、関数(function)について紹介します。関数は、メソッド、サブルーチンなど様々な言葉でさすが、一つの固まりを指します。

プログラミングで、よくfunction()という書き方を目にすると思いますが、あくまで一機能を示しているのです。

そして、関数は書く言語によって、どういう約束で書くかなどが決まっています。
まずは、以下の関数を見てみましょう。
 (578)

これは、フィボナッチ数列というもので、葉の分岐に関係するとかしないとか。。!

ここでのdefはdefine(定義)の意味です。一番最初にこんな機能だよ!ということを紹介する挨拶みたいなものです。
def は関数の 定義 (definition) を導くキーワードです。 def の後には、関数名と仮引数を丸括弧で囲んだリストを続けなければなりません。関数の実体を構成する実行文は次の行から始め、インデントされていなければなりません。
via Pythonチュートリアル
def fib(n):と、最後に:コロンをつけて関数を定義することが出来ます。

fib(n)の(n)とは、仮の引数です。命令を書く時にどこまでの値を扱うかなどを決める時に使います。
 (582)

因みに、defの中で定義されたnはあくまで仮の姿なので、あとから定義すれば、実引数は何を書いても良いそうです。

fibは、サブルーチンの一つです。
サブルーチンで検索すると以下のように紹介されます。
プログラミングにおいて、コード中で何度も必要とされる定型的な処理を一つのプログラムにまとめて外部から呼び出せるようにしたもの。汎用性の高いコードをサブルーチンとして切り出すことにより、似たようなコードを何度も記述する必要が無くなり、コード量の削減や開発効率の向上、不具合発生率の低減などが見込める。サブルーチンを呼び出す際に動作を指定する設定値を与える場合があり、この値を引数(ひきすう)、パラメータなどと呼ぶ。また、実行後に呼び出し元のプログラムに処理結果のデータなどを返す場合があり、この値を返り値、戻り値などと言う。引数と返り値のあるサブルーチンを特に関数と呼ぶことがある。C言語のようにサブルーチンをすべて関数とする言語や処理系もある。
via IT用語辞典:e-Words
例えば、while~という同じ処理をいちいち何度も書くのは凄い大変だし、書くのが煩雑になります。だから、サブルーチンというおまじないを使って、同じことが出来るようにするのでした。
 (586)

上のa,b =b,a+bは並列的に代入を繰り返しています。bをaに代入し、a+bをbに代入することで、aの値が+bずつ増えていくことになります。

もう少し簡単なコードを見てみましょう。
 (588)

f(x)を実行しようとすると

ここでn=3という箱が作られます。ただし、箱の引き渡しはせず、中身を渡します。

次に、n=10で上書きされるので、10が出力されます。

その後、関数が終了すると仮引数(n)は自動消滅します。なので、例えば、以下のように、関数の外でzと書いても、反応しません。
 (590)

関数サブルーチンの名前を入力すると名前が示されます。ある関数から別の関数に渡すということも可能です。

また、同じ変数名で定義してしまうと上書きされます。
41 件

関連する記事 こんな記事も人気です♪

LP-tech2周年記念#人気記事のまとめ#第5位〜第1位

LP-tech2周年記念#人気記事のまとめ#第5位〜第1位

LP-techが始まってから2周年を迎えました。ここまでLP-techを続けることができたのも読者の皆様のおかげだと思っています。そこで、LP-techの感謝祭ということで、人気の記事を第20位から第1位までをご紹介します。今回は第5位〜第1位までです。
LP-tech2周年記念#人気記事のまとめ#第15位〜第11位

LP-tech2周年記念#人気記事のまとめ#第15位〜第11位

LP-techが始まってから2周年を迎えました。ここまでLP-techを続けることができたのも読者の皆様のおかげだと思っています。そこで、LP-techの感謝祭ということで、人気の記事を第20位から第1位までをご紹介します。今回は第15位〜第11位までです。
医用画像位置合わせの基礎⑥ 〜アフィン変換とは?〜

医用画像位置合わせの基礎⑥ 〜アフィン変換とは?〜

今回は、画像位置合わせに用いられるアフィン変換をご紹介します。
木田智士 | 5,885 view
画像の再構成理論〜概要、まとめ〜

画像の再構成理論〜概要、まとめ〜

今回は、以前4回にわたって記事として投稿した画像の再構成理論の概要について述べ、それのまとめをしたいと思います。
画像処理におけるフーリエ変換④〜pythonによるフィルタ設計〜

画像処理におけるフーリエ変換④〜pythonによるフィルタ設計〜

画像処理におけるフーリエ変換の最終回として、pythonによるフィルタ設定についてご紹介します。

この記事のキーワード

この記事のキュレーター

エルピクセル編集部 エルピクセル編集部