大体のプログラムの書き方がわかってきたところで、こんなこと思わない?
「一度作ったプログラムをまた作るの面倒だなぁ」って
思う思う!同じの何度も作るのは大変すぎる
確かに思います。次やったとき同じ処理が作れるか自信もないですし…
その感覚は重要だよ!
そんな悩みを解決するのが関数やモジュールと呼ばれるものたちなんだ。
自分が昔作ったものや別の人が作ったプログラムを借りてくるイメージで、
超便利にプログラミングができるようになるから覚えていって!
関数とは
関数とは、「ある仕事を行う命令をまとめたもの」だよ。
これだけ言われても…と戸惑ってしまうかもしれないね。
例えば、自動販売機。
これも一つの関数と捉えることができる。
お金を入れて、ボタンを押すという二つの行動をするだけで、ジュースという出力が得られるよね。
自動販売機が実際にどんな処理や計算で、お金を受け入れてジュースを選択して、ジュースを出しているのかはわからないよね?
関数もこれと同じで、とりあえず入力をすると出力を得られるもののことを言うんだ。
実際には関数自体も自分で作るから、中身もわかってはいるんだけど、ひとまず関数は何か入力をすると、加工された出力が戻ってくる命令のまとまりのことを言うと覚えておいて。
関数に入力を渡すことを「関数を呼ぶ」「関数に引数を渡す」なんて表現をすることもある。
また関数から出力が返ってくることを「関数からの戻り」「戻り値」なんて表現されることもあるから頭の片隅においておいて。
わぁ、一気に難しくなった!入力すると、出力が返ってくる?どういうこと?
もう少し簡単な例で紹介するね。
例えば、受け取ったデータに10を足して返すという関数を考えてみてほしい。
関数の構造としてはシンプルだよね。
5という数字を使ってこの関数を呼び出したら、15が返ってくる。
10という数字を使ってこの関数を呼び出したら、20が返ってくる。
関数自体は10を足している命令をまとめたものってだけ。これが関数の考え方だよ。
実際に関数の書き方を見ればもう少し、わかりやすくなるかもしれない!
関数の書き方
Pythonでの関数の書き方はこんな感じ。
def 関数名():
関数で行う処理
関数名は自由に決めてよくて、関数で行う処理に実際にその関数を呼び出したときにどんな処理をしてもらいたいのかを書くんだ。
例えば、関数を呼び出すと自動的に「こんちはー」と出力される関数を考えてみよう。
書き方は
def sayhello():
print(“こんちはー”)
となるよ。
この準備ができたら、他の行で「sayhello()」とプログラムを書けば、呼び出されて「こんちはー」と出力してくれる。
これをさらに便利な例でみていこう。
消費税の計算って面倒くさいよね。
じゃあ消費税の計算をひとまとめにした関数を作っちゃおう!
def post TaxPrice(price):
answer = price * 1.08
return answer
となる。
かっこの中と「return」なんて初めての単語が出て焦ったかな?
これはさっき関数のところでちらっと話した、入力と出力の形のことだよ。
かっこの中のpriceが引数とも呼ばれる、関数を呼び出す際に必要な入力値。
returnが戻り値とも呼ばれる、関数を呼び出した後に出てくる出力値だ。
つまり、この関数の場合、postTaxPrice(100)とすれば108が出力されるし、postTaxPrice(5500)とすれば5940が返ってくる。
これでいつでもpostTaxPriceを使うことで、いちいち数字に1.08をかけるなんてことをせずに済む。
何度も読み出す際に関数は使われやすいんですか?
その通り!
何度も同じ計算をプログラムで書くのは面倒だから、使いやすい形でおいておこうという考えだ。
プログラマーは基本面倒くさがりの集まりだから、同じことは2度したくないという考えが元になっているよ。
モジュールとは
関数と似た考え方にモジュールというものがある。
関数は自分で作ったけど、モジュールというのは先人たちが用意した便利な関数という感じ。
自分で全く中身を考える必要なく、モジュールを呼び出すだけですごい動きのプログラムの結果が返ってきたり出力されたりするんだ。
モジュールはインターネットにあって、自分のパソコンに持ってくる必要がある。
そして呼び出す必要があるよ。
実際にモジュールをPythonで使う方法を見ていこう。
モジュールの入れ方・書き方
モジュールはまずプログラムに取り込むために、importと呼ばれる別フォルダにあるファイルを読み込んでくるよ。
そして、あとは入れたモジュールの中の関数を呼び出す。
消費税を求めるモジュールも実は存在するんだ。
import tax
print(tax.postTaxPrice(100), “円”)
こんな感じで使う。
Importでtaxという名称のモジュールを入れて、実際の関数はpostTaxPriceというのを呼び出しているよ。
taxの中にpostTaxPriceがあるってどうしてわかるの?覚えているの?
覚えているに越したことはないけど、基本的には調べる感じだね。
プログラマーってずっとプログラムに向き合っているようなイメージかもしれないけど、実は結構ネットの情報からコピペでプログラムを書くってことも多いんだよ。
モジュールなんて特に、時期によって最新版などが変わるから、やりたいこととモジュールで検索すれば出てくる情報を使うことが多いよ。
じゃあ、taxも別に覚えなくてもいい?
そうだね。
モジュールを知っていると、開発スピードと効率が上がるってことだけ覚えておけばいいかな。
モジュールの種類の紹介
覚えなくてもいいけど、モジュールにはどんなものがあるかは知っておいた方がいい。
ここでは、よく使われるモジュールについて紹介するよ。
モジュール:random
ランダムで何かを選択するときに使うモジュール!
おみくじアプリの時にも使ったモジュールだよ。
モジュール:calendar
カレンダーに関する処理を扱えるモジュール!
Calendar.month(2024,4)と呼び出してあげればカレンダーが表示される。
他にもpandasとか有名なのもあるけど、ひとまずはこんな感じ。
何か作りたいものがあったら、自分で開発するのも手だけど、先人たちがモジュールで残していないかを確認するのも手だね!
まとめ
今回は、関数とモジュールについて紹介してきたけど、どうだったかな?
全部を全部自分が開発しなくていいというのは、新鮮でちょっと安心しました。
ぼくは関数の理解がちょっとあやふやだったから復習してくる!
いいね。関数あってのモジュールだからね!
モジュールの種類を丸暗記する必要はないけど、モジュールという存在があるってことだけは知っておこう!