Pythonの関数ってなんだろー(´・ω・`)?

こんにちは、retroidです。

今回はPythonの関数についてご紹介していきたいと思います。

対象の読者

Python初学者で関数って言葉を理解出来ない人、あるいは、関数自体は使っているけど、なんとな~く使っている人。

関数とはなにか?数学における関数の簡単な説明

関数というのは、与えられた数に対して、特定の処理を施した後、その結果を返すものです。

与えた値に対して、特定の処理を施し、その結果を

おそらく皆さんは、数学で1次関数、2時間数について学習してきたと思います。

あれも関数です。

ある特定のxの値を決めると、自然とyの値が決まります

例えば下のようになります👍

数学の関数との違いは?

数学の関数では、加減乗除、積分、微分など、数値の計算しか行いません。

一方、 Pythonを含めたプログラムにおける関数は、計算にとどまらず、いろんなことを処理内容として記述することができます 

Pythonにおいて、↑の例で示したxにあたるものを引数と呼びます(若干ニュアンス違うかもですが、ざっくり覚えるならこれでOKと個人的には思っています)。

引数とは、関数に渡す値であり、数学の関数と違い、数値のみならず、文字列を与えてもOKです。

引数は第1引数、第2引数…というように増やすことができます

Pythonの関数では、例えば以下のようなことができます。

  • 引数として与えた文字列をすべて大文字にする関数
  • 引数として与えた数を二乗して返す関数
  • 引数として与えた文字列を、赤文字(htmlのタグを付ける)にする関数

例えがショボくて、「ほんとに関数って必要なの(´・ω・`)?」って思っちゃいますけど(笑)

関数はうまく使えば、

  • コードが短くなる
  • コードの手入れがしやすくなる

等の効果が期待できます。

例を示します

それでは、例を示します。

例えば、とある文章を引数1として、その中で大文字にしたい文字列を引数2として関数を組みます。

引数2はリストとして与えます。

今回引数1として渡すのは、こちらの文章です。

To Sherlock Holmes she is always the woman. I have seldom heard him mention her under any other name. In his eyes she eclipses and predominates the whole of her sex. It was not that he felt any emotion akin to love for Irene Adler. All emotions, and that one particularly, were abhorrent to his cold, precise but admirably balanced mind. He was, I take it, the most perfect reasoning and observing machine that the world has seen, but as a lover he would have placed himself in a false position. He never spoke of the softer passions, save with a gibe and a sneer. They were admirable things for the observer—excellent for drawing the veil from men’s motives and actions. But for the trained reasoner to admit such intrusions into his own delicate and finely adjusted temperament was to introduce a distracting factor which might throw a doubt upon all his mental results. Grit in a sensitive instrument, or a crack in one of his own high-power lenses, would not be more disturbing than a strong emotion in a nature such as his. And yet there was but one woman to him, and that woman was the late Irene Adler, of dubious and questionable memory.

↑は、シャーロック・ホームズの冒険の一部分です。

著作権フリーということで拝借しました。

さて、この文章に存在する単語

machine

cold

passions

に対して、

  • 全て大文字にする
  • 墨付きカッコ【】でくくる

という処理を施して見たいと思います。

 

上の処理くらいだとまだ関数は必要ないかもしれませんが、処理する文章の量が増えたり、条件によって処理を変えたりするなど、様々なひねりを加えて行くと、関数のほうが圧倒的にコードが短く、メンテナンスもしやすくなります。

関数をうまく使う上で大切なこと

まだ語れる立場じゃないかもしれませんが、関数をプログラミング中でうまく使うには、自分の組むコードの中で発見できる、普遍的な処理(同じような処理)に関して常に敏感になることが大切だと思います。

この処理ってここの処理と共通じゃないかな?」という目線を常に持ってプログラムを作れば良いでしょう。

僕もきれいなコードをかけるように、もっと関数の使い方をマスターしていきたいと思います(`・ω・´)ゞ

参考文献

実践力を身につけるPythonの教科書

日本人の方が書いたPythonの本です。平易な表現で的確な説明がなされています。全くプログラミングに触れて来なかった方でも理解できると思います。
初心者におすすめの1冊です。

入門Python3

オライリーのPython入門書です。外国の方の書いた本を日本語訳したものです。
外国の本特有?の気の利いたジョークも織り交ぜて書いてあります。僕は結構好きですが、全く初心者の人にはおすすめできないかも?
2冊目以降におすすめです。
プログラミングをかじったことがある人ならはじめての本でも問題ないと思われます。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です