空飛ぶチンアナゴの統計解析日記

統計解析を嗜むチンアナゴのメモ帳です

本当に初心者が学んでほしいコードの話 〜その3 関数の話2〜

さて、ことデータ解析においては初学者が使う関数というのは大抵誰かが作ってくれているという話を前回したかと思います。
自分で最初から必要な関数を作るのはなかなかに大変ですので、誰かが作ったものをそっくりそのまま使うのが一番楽です。
そのためにはモジュールと呼ばれるプログラムの塊を事前に読み込む必要があります。

ところでモジュールはこれまでも使っています

flying-spotted-garden-eel.hatenablog.com
ここの記事で使った

import random

です。
Pythonではimport〜という構文でモジュールを自動的に読み込むことができます。
ちなみにrandomというのは擬似乱数を作るためのモジュールです*1。ここではrandomモジュールを読み込むことを宣言しています。
なお、コンピューター上に当該モジュールが存在しない場合はエラーが出ます。その場合、モジュールをコンピューター上の用意する必要がありますが、今はその方法については触れないでおきます。
モジュールを使うときは

import インポートしたいモジュール名

とだけ覚えておけばまずは大丈夫です*2

モジュールの関数を使う

では、モジュールから読み込んだ関数を使うためにはどうしたらよいのでしょうか?
先ほどの記事で書いたプログラムには

# 6面体のサイコロな
d6 = random.randint(1, 6)

という記述があります。これは「rondomモジュールのrandintという関数を使い1〜6までの整数をどれか一つランダムに取り出し、変数d6に格納する」という宣言なのですが、もう少しモジュールの関数を使うという点で詳しく見ていきましょう。
この関数は二つのブロックに分かれます。
最初の

rondom.

randint(1, 6)

です。
最初の

rondom.

は(すでにimportしてある)rondomモジュールから探すという意味です。rondomはモジュール名、その後の”.”はドット演算子と呼ばれる演算子です。とりあえず、このレベルではドット演算子の細かい意味はわからなくても大丈夫です。モジュール名の後に"."をつければそのモジュールの中を検索してくれると覚えておけばよいです。
後半の

randint(1, 6)

は引数に1と6を取るrondint関数を実行せよという意味です。ここは前回触れたところなので飛ばします。
したがって、あるモジュールに格納されている関数を使いたい場合は

モジュールの名前.モジュールに収録されている関数

として呼び出してあげることで、別のプログラム上でも使うことができます。

余談

モジュールとして呼び出せるものは関数だけではありません。
変数も同様の方法で呼び出すことが可能です。
例えば、hogehoge.pyにある

hoge_dic = {'A': 'abc', 'B': 'def', ...... , 'Z':'xyz'}

のような辞書型の変数も

import hogehoge

a = hogehoge.hoge_dic

というような形でも使うことができます。

まとめ

モジュールを読み込み、その関数を使うときは

import 読み込みたいモジュール名

でモジュールを読み込ませてから

読み込みたいモジュール名.使いたいそのモジュールの関数名 or 変数名

で使用します。