1.日時モジュール
1.1 主要モジュール
datetime.date() #処理日(年、月、日) datetime.time() #処理時間(時、分、秒、ミリ秒) datetime.datetime() #処理日+時刻 datetime.timedelta() #処理期間(時間間隔)
#获取今天的时间
print(datetime.date.today())
print(datetime.datetime.now())
print(datetime.date.today().strftime("%Y-%m-%d %H-%M-%S"))
print(datetime.datetime.now().isoformat())
1.2 タイムスタンプ
タイムスタンプは、1970 年 1 月 1 日の 00:00:00 GMT から現在までの合計秒数を指します。
1.2.1 日付からタイムスタンプへの変換、およびタイムスタンプから日付への変換
timetuple 関数: 日付を struct_time 形式に変換します
time.mktime 関数: 時間を秒単位で表す浮動小数点数を返します。
import datetime,time
today = datetime.date.today()
print(today.timetuple())
print(time.mktime(today.timetuple()))
print(datetime.date.fromtimestamp(1668614400.0))
1.2.2 時間の加算と減算
timedelta() メソッドは 2 つの時点間の間隔を表します
import datetime
today = datetime.datetime.now()
print(today)
yesterday = today - datetime.timedelta(days=1)
print(yesterday)
hours = today - datetime.timedelta(hours=1)
print(hours)
2. カレンダーモジュール
カレンダーに関連するいくつかの関数とクラスは、テキスト形式でカレンダーを生成できます。
2.1 共通機能
import カレンダー Calendar.calendar(<年>) Calendar.month(<年>,<月>) #return 複数行文字列 Calendar.prmonth(<年>,<月>) #print と同等(calendar.month(< Year>,<month>)) Calendar.prcal(<year>) #print(calendar.calendar(<year>)) と同等
import calendar
print(calendar.month(2022,11))
print(calendar.calendar(2022))
出力には次のことが示されます。
E:\ProgramData\Anaconda3\python.exe C:/Users/dl/PycharmProjects/MyProjects/1.py
November 2022
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
2022
January February March
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 1 2 3 4 5 6 1 2 3 4 5 6
3 4 5 6 7 8 9 7 8 9 10 11 12 13 7 8 9 10 11 12 13
10 11 12 13 14 15 16 14 15 16 17 18 19 20 14 15 16 17 18 19 20
17 18 19 20 21 22 23 21 22 23 24 25 26 27 21 22 23 24 25 26 27
24 25 26 27 28 29 30 28 28 29 30 31
31
April May June
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 1 1 2 3 4 5
4 5 6 7 8 9 10 2 3 4 5 6 7 8 6 7 8 9 10 11 12
11 12 13 14 15 16 17 9 10 11 12 13 14 15 13 14 15 16 17 18 19
18 19 20 21 22 23 24 16 17 18 19 20 21 22 20 21 22 23 24 25 26
25 26 27 28 29 30 23 24 25 26 27 28 29 27 28 29 30
30 31
July August September
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 1 2 3 4 5 6 7 1 2 3 4
4 5 6 7 8 9 10 8 9 10 11 12 13 14 5 6 7 8 9 10 11
11 12 13 14 15 16 17 15 16 17 18 19 20 21 12 13 14 15 16 17 18
18 19 20 21 22 23 24 22 23 24 25 26 27 28 19 20 21 22 23 24 25
25 26 27 28 29 30 31 29 30 31 26 27 28 29 30
October November December
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 1 2 3 4 5 6 1 2 3 4
3 4 5 6 7 8 9 7 8 9 10 11 12 13 5 6 7 8 9 10 11
10 11 12 13 14 15 16 14 15 16 17 18 19 20 12 13 14 15 16 17 18
17 18 19 20 21 22 23 21 22 23 24 25 26 27 19 20 21 22 23 24 25
24 25 26 27 28 29 30 28 29 30 26 27 28 29 30 31
2.2 カレンダーを一覧表示する
カレンダー.monthcalendar()
特定の年の特定の月のカレンダーを返します。これはネストされたリストです。最も内側のリストには、週 (月曜日から日曜日) を表す 7 つの要素が含まれています。日付がない場合は 0。
import calendar
print(calendar.monthcalendar(2022,11))
输出结果:
[[0, 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, 0, 0, 0, 0]]
2.3 うるう年の判定
カレンダー.isleap(<年>)
import calendar
print(calendar.isleap(2022))
print(calendar.isleap(2000))
输出结果:
False
True
2.4 月数と曜日の判断
ある月の曜日を計算するとき、日数の合計がある場合、0から始まり、月曜日、火曜日…となります。
曜日を計算すると、月曜日から日曜日に対応する 0 ~ 6 が返されます。
import calendar
print(calendar.monthrange(2022,11))
print(calendar.weekday(2022,11,18))
输出结果:
(1, 30)
4
3、タイムモジュール
3.1 タイムスタンプの取得
time.time() 方法
プログラムの実行時間を計算する
import time
t1 = time.time()
a = 0
for i in range(10000):
a += i
print(a)
t2 = time.time()
print(t2-t1)
3.2 日付形式の取得
3.2.1 現在時刻を取得する
import time
t1 = time.asctime()
t2 = time.ctime()
print(t1)
print(t2)
3.2.2 タプルデータを日付に変換する
import time
t = (2022,11,18,11,8,30,0,0,0)
print(time.asctime(t))
输出结果:
Mon Nov 18 11:08:30 2022
3.3 インデックスを使用して時刻情報を取得する
import time
print(time.localtime())
t = time.localtime()
year = t[0]
print(year)
4. 算術モジュール
4.1ランダムモジュール
擬似乱数: コンピュータ内のランダム関数は特定のアルゴリズムに従ってシミュレートされ、結果は決定的で予測可能です。
乱数シード: 乱数シードは同じであり、乱数列も同じです。
ランダム.シード(a = なし)
random() #範囲[0,1)のランダムな実数を生成します。
uniform() #指定された範囲内のランダムな浮動小数点数を生成します
randint(m,n) #指定された範囲内の整数を生成 [m,n]
randrange(a,b,n) #[a,b)の範囲内でnずつ増加する数値をセットからランダムに選択できます
getrandbits(k) #k ビットの 2 進ランダム整数を生成
Choice() # 指定されたシーケンスから要素をランダムに選択します
Sample() #毎回ランダムな要素の数を指定できます
shuffle() #変数シーケンス内のすべての要素をランダムに並べ替えます
import random
colors = ['red','green','blue','yellow','black']
print(random.choice(colors))
print(random.sample(colors,3))
random.shuffle(colors)
print(colors)
输出结果:
black
['black', 'blue', 'green']
['red', 'blue', 'green', 'yellow', 'black']
5. ファイルテキストの読み書きモジュール
5.1 ファイルを開く
open() 関数:
f = open(ファイル名[,モード[,バッファリング]])
f: open() によって返されるファイル オブジェクト
filename: ファイルの文字列名
モード: オプションのパラメータ、オープンモードとファイルタイプ
バッファリング: オプションのパラメータ、ファイルのバッファ、デフォルトは -1
ファイルのオープンモード:
モードの最初の文字は、そのモードに対する操作を示します。
'r': 読み取りモードを示します
'w': 書き込みモードを示します
'x': ファイルが存在しない場合は、ファイルが新規に作成されて書き込まれることを示します。
'a': コンテンツがファイルの最後に追加されることを示します
「+」: 読み取りおよび書き込みモードを示します
mode の 2 番目の文字はファイルの種類です。
't': テキストの種類を示します
'b': バイナリファイルを示します
5.2 ファイルの読み取り、書き込み、およびアクセス
ファイル書き込み操作:
f.write(str)
f.writelines(strlist): 文字列のリストを書き込みます。
ファイル読み取り操作:
f.read()
f.readline(): 行を返します
f.readlines(): すべての行を返し、リストを返します。
f = open('mytxt','w')
f.writelines(['apple\n','orange\n'])
f.close()
f = open('mytxt','r')
print(f.readlines())
f.close()
ファイルを開いた後は、必ずファイルを閉じる必要があります。クローズとは、外部ファイルとの接続を終了し、同時にキャッシュ領域のデータをハードディスクに更新することです。
5.3 構造化テキストファイル:CSV
ファイル読み取り—リーダー
re = csv.reader()
反復可能なオブジェクト (csv ファイルなど) を受け入れ、コンテンツを解析できるジェネレーターを返します。
ファイル読み取り—DictReader
リーダーと同様に、ヘッダー付きの CSV ファイルに適しており、返された各セルはタプル値に配置されます。
ファイル書き込み操作:
w = csv.writer()w.writerow(行)
ファイルが存在しない場合は自動生成され、単一行書き込みと複数行書き込みをサポートします。
辞書データは次のように書き込まれます。
w = csv.DictWriter()
w.writeheader()
w.writerow(行)