この章のキーワード
- ライブラリ
- datetimeライブラリ
- import
- today()関数
- 関数とメソッド
- from datetime import date
- 公式ドキュメント
- 標準ライブラリ
- モジュール
- 自前のライブラリ
この章のキーワード
Pythonには便利な ライブラリ がいろいろあり、たくさんの機能をかんたんに使うことができます。今回は、Pythonをインストールすると最初からついているライブラリのうち、時刻や日付の計算に使う datetime
を使ってみましょう。
import datetime
today = datetime.date.today()print(today)
実行すると、今日の日付が表示されます。
今日の日付(この場合は”2022-02-14”)が表示される
import
でライブラリを読み込むことができます。 datetime
は、デートタイムと読みます。英語でデートは日付、タイムは時刻のことですね。
import datetime
datetime.date
は、「datetimeのdate」という意味です。そこにさらに .
(ドット)がついて、 datetime.date.today()
は「datetimeのdateのtoday()」という意味になります。
datetime
ライブラリの中に date
オブジェクトがあり、そこにさらに関数 today()
があるのです。 today()
は、今日の日付を返すので、3行目は変数 today
に今日の日付を入れると言う意味になります。
4行目で変数 today
を表示しています。
today = datetime.date.today()print(today)
datetimeライブラリの中にあるdatetimeオブジェクト(クラス)のメソッドnow()を使って今の時刻を表示させてください。
日付データdateはdatetimeライブラリに含まれているので、毎回 datetime.date
のように書かなければいけませんが、これではコードが長くなってしまいます。
今回はdateを直接使って今日の曜日を求めてみましょう。
from datetime import date
today = date.today()print(today.weekday())
これを実行すると、0から6までの数字のどれかが表示されます。0が月曜日、1が火曜日・・・6が日曜日です。
このコードを実行した2022年2月14日は月曜日だったので0が表示されました。
from datetime import date
で、「datetimeライブラリからdateを読み込む」という意味になります。このようにするとdateを直接使えます。
from datetime import date
今回はdatetimeではなくdateを直接呼び出したので、 date.today()
というふうに使うことができます。
today = date.today()print(today.weekday())
datetimeのように、Pythonに最初から付属しているライブラリは 標準ライブラリ と呼ばれます。標準ライブラリの詳細なマニュアルはPythonの公式サイトにあります。
datetimeライブラリのドキュメントはこちらです。datetimeだけでなく、dateやtime、timedeltaなどのオブジェクトがあります。ひとおとり目を通してみましょう。
datetime - Basic date and time types - Python 3.10.3 documentation
dateオブジェクトとtimedeltaオブジェクトを使って、今日の90日後の日付を求めるプログラムを作ってください。ドキュメントを読んでtimedeltaの使い方を学びましょう。
ライブラリは利用するだけでなく、自分で作ることもできます。今回は、西暦を渡すと令和を返す関数 reiwa()
を作ってファイル mylib.py
に保存してみましょう。
def reiwa(seireki): return seireki - 2018
次に、このmylibを使うPythonのプログラムファイル libtest.py
を作って実行してみましょう。
libtest.pyはmylib.pyと 同じフォルダ に置くことに注意してください。
import mylib
print(mylib.reiwa(2022))
libtest.pyを実行すると現在の令和の年が表示されます。
4が表示された
mylib.py
をライブラリとして使用したいときは import mylib
のように、”.py”の部分をはぶいた名前を使います。
import mylib
関数 reiwa()
はmylibの関数なので、 .
を使って mylib.reiwa()
のように使います。 reiwa()
という書き方では動かないことに注意してください。
print(mylib.reiwa(2022))
mylibライブラリに、西暦の数字を渡すと昭和の年号を返す関数 showa()
を追加し、libtest.pyから使ってみてください。