まるおのアウトプットの場

プログラミング勉強中。勉強した内容をアウトプットしていきます。

他の人が作ったプログラムを利用する import

R5.2月からPythonの勉強をしているプログラミング初心者です。

 

勉強した内容を備忘メモ程度にアウトプットしていきます。

 

参考書籍はこちら。

(さすがに全てまるまる写してしまうとまずいので部分的に抽出していきます。)

item.rakuten.co.jp

 

他の人が作ったプログラムを利用する

前回は「def」を使って関数を自分で作りましたが、実は他にも複雑なプログラムをシンプルにする工夫があります。それが「import」です。

「import」を使うと別のファイルに書いた関数などのプログラムを読み込んで利用することができます。importで読み込むプログラムファイルのことを「モジュール」と呼びます。

 

書式:インポートする方法

import モジュール名

 

書式:importしたモジュールの関数を実行する方法

モジュール名.関数名

 

モジュールを作ってみよう

前回、消費税(10%)を計算してくれるプログラムを作ったので、今回はそれを2つのファイルに分けて作ってみましょう。

前回のプログラム

1つ目のファイルには「モジュール」を作り、2つ目のファイルには「そのモジュールを読み込んで動かすプログラム」を作ります。

モジュールを作ります

このファイルは関数部分だけを書いて「モジュール」にします。書き終わったら「tax.py」というファイル名で保存します。

プログラム

この時、モジュールの保存場所に注意が必要です。今回作った「モジュールのファイル」とこれから作る「モジュールを読み込むファイル」がそれぞれ別のフォルダに入ってしまうとimportする時に見つからずエラーになってしまいます。今回のように単純なプログラムであれば同じフォルダ内に一緒に入れておけばわかりやすいでしょう。

もっとプログラムの規模が大きくなってきたらフォルダに分けて入れて管理する必要も出てきます。そうなると、importで呼び出す時や関数名で呼び出す時もフォルダ名をつけて指定する必要があります。

モジュールを読み込んで動かすプログラムを作ります

先ほどのモジュール名(ファイル名の.pyより前の部分)を指定してimportで読み込みます。関数を呼び出す時は「モジュール名.関数」で指定します。

なので今回はtaxというモジュールの中のpostTaxPrice関数なので「tax.postTaxPrice」と指定します。

プログラム

出力結果

無事計算できましたね。

 

一言メモ

これ初めて知った時に感動した記憶があります。「こうやってimportで呼び出せるなら大勢で色々作れるじゃん!」と。チーム力が試されそうですね。

 

用意されたモジュールをimportする

Pythonにはあらかじめ「標準モジュール」がたくさん用意されています。例えば数値計算を行う「math」「random」、日付や時刻を使う「datetime」「time」「calendar」、データファイルに使う「csv」や「json」、ユーザーインターフェースが作れる「tkinter」など色々あります。

前回、「3.戻り値だけある関数」ということでおみくじの結果をランダムに表示するプログラムを作りました。

その際は「Import random」で呼び出し、その中の「random.choice」を使いました。これはリストの中からランダムに1つ選びだす命令なのです。

randomを使ったプログラム

モジュール名を省略する(その1):as

「import モジュール名」を使って読み込むと「モジュール名.関数名」と指定して使いますが、プログラムの中で何度もその関数を実行するような場合、長いモジュール名だと読みにくくなってしまいます。

そういう時は「import モジュール名 as 省略名」とすることでモジュール名を省略名で書くことができるようになります。今後、よく出てくるので覚えておきましょう。

 

モジュール名を省略する(その2):from

「import モジュール名」を使って読み込むと「モジュール名.関数名」と指定して使いますが、関数名の前のモジュール名を書かずに済ませる方法があります。

それが「from モジュール名 import *」です。

上記のプログラムに当てはめると「 from random import *」と読み込むと「random.choice」ではなく、「choice」だけで使えています。

プログラム

まとめ

今回はモジュールを学んでいきました。実は参考書籍の最初のほうにこの「import」がよく使われています。ここにきてようやく「importってそういう意味だったのか!」と気付くのです。「ただのプログラミング体験で文法の意味はこれから学んでいくよ~」というスタンスの内容だったのでブログでは省いていますが。

ずっと法律(税法)の勉強ばかりしてきたのでプログラミングの勉強はとても新鮮で楽しいです。平日でもほぼ休ます毎日3~4時間勉強しちゃってます。寝不足に気を付けなければ…。