Contents
Pythonのモジュールをインポートする方法
Pythonをインストールすると、デフォルトで「標準ライブラリ」と呼ばれる「モジュール」が用意されます。
モジュールを使用する時には、モジュールをインポートする記述が必要になります。
モジュールのインポート方法は次の通りです。
import モジュール名
calendarというモジュールをインポートして、表示させてみます。
IDLE >> import calendar >>> cal = calendar.TextCalendar() >>> str_cal = cal.formatmonth(2019, 10) >>> print(str_cal) October 2019 Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
月曜始まりなので、日曜始まりに変更する場合は、TextCalendar( )に引数として、6を記述します。
>> import calendar >>> cal = calendar.TextCalendar(6) >>> str_cal = cal.formatmonth(2019, 10) >>> print(str_cal) October 2019 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
日曜始まりのカレンダーを表示できました。
クラスからインスタンスを生成する方法
モジュールの中にはクラスと呼ばれる関数があります。
クラスは設計図のようなものなので、そのまま使用することができません。
クラスを使用するときは、インスタンスというものを生成します。
クラスからインスタンスを生成するには、コンストラクタを使用します。
コンストラクタは、インスタンスが生成される時に実行されます。
一旦話しをずらします。
今まで変数を記述する際に、次のような書き方をしていました。
word = "こんにちは" list_a = [ 100, 200, 300, 400 ]
クラスを使用して、インスタンス変数を使用するときには、コンストラクタで初期の状態を定義する必要があります。
知らない言葉が複数出てくると、頭の整理が追いつかず、難しく感じてしまいますが、覚えるしかありません。
標準ライブラリが本棚だとして、モジュールは本だとします。
クラスは本の中に書かれている章の内容だとします。
本の中に書かれている章の内容(クラス)を使う時に、紙に書くとします。
紙に書くことをインスタンスとします。
紙に書くときに使う単語のルールをコンストラクタと考えてみます。
このように何かに例えると、脳は理解しやすくなるのではないでしょうか?
コンストラクタの名前はクラス名と同じです。
クラスのコンストラクタは、次のように記述します。
モジュール名 . クラス名(引数1, 引数2, . . . )
上記のカレンダーを表示させるプログラムでも、この書き方が使用されています。
次の部分です。
cal = calendar.TextCalendar(6)
TextCalendarクラスを使用して、インスタンスを生成しています。
TextCalendarクラスのコンストラクタに引数6を指定しています。
ここでは、インスタンスの生成とコンストラクタによる定義が、同時に書かれています。
この時 calは、calendarモジュールのTextCalendarクラスの機能を使えるオブジェクト(変数)になっています。
オブジェクトという言葉が出てきました。
Pythonではオブジェクトという言葉は広範囲な物を指しますので、混乱しないように、いまは聞き流してください。
calというメモ用紙には、calendarという本のTextCalendarという章の内容が書き写されていると考えてみましょう。
よって、calを使うとTextCalendarという章に書かれている内容を使うことができるようになっています。
インスタンスでクラスのメソッドを使う方法
インスタンスを生成することで、クラスが持つメソッドを利用できるようになります。
クラスが章の内容だとすると、メソッドは章の中で書かれている段落部分の文章という風に考えてみましょう。
メソッド インスタンスを格納した変数 . メソッド名(引数1, 引数2, . . . )
上記のプログラムでは、次の部分で formatmonth( )メソッドを使用しています。
formatmonth( )メソッドを使うと、カレンダーを文字列にして返すことができます。
str_cal = cal.formatmonth(2019, 10)
from 〜 import文を使用してクラスをインポートする方法
上記のプログラムでは、コンストラクタの前にモジュール名calendarを記述していました。
次のように、モジュールをインポートする時に、クラス名を指定しておくと、指定したクラスのみがインポートされて、モジュール名を省略して記述できます。
クラスのインポート from モジュール名 import クラス名, クラス名, . . .
次のようにプログラムが変わります。
>> from calendar import TextCalendar >>> cal = TextCalendar(6) >>> str_cal = cal.formatmonth(2019, 10) >>> print(str_cal) October 2019 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
乱数を使用する方法
Pythonの標準ライブラリにあるrandomモジュールをインポートして使用してみます。
指定した範囲の整数の乱数を求める時は、randint( )関数が便利です。
関数 randint(a, b) a以上、b以下のランダムな整数を戻す
IDLE >>> import random >>> random.randint(0,5) 3 >>> import random >>> random.randint(0,5) 1
randrange( )関数を使用すると0以上の指定した値未満の乱数を返します。
関数 randrange(a) a未満のランダムな整数を返す
> import random >>> random.randrange(5) 0 >> import random >>> random.randrange(5) 3
randint( )とrandrange( )の違いは最後の数値を含めるかどうかです。
randrange( )は最後の数値を含めないランダム数値を返します。
importしなくても使える組み込み関数
Pythonにはインポートしなくても使用できる関数が用意されています。
インポートの必要のない print( )、len( )、str( )などは、組み込み関数と呼ばれます。
まとめ
モジュールをインポートして使用する方法をcalendarモジュールとrandomモジュールについて書きました。
最後までお読みいただきありがとうございました。