進捗

4/16 p.370~p.371 16:00~18:00

正規表現のreモジュールについて学習した。compile関数で正規表現パターンを引数にして正規表現オブジェクトを作る。

reモジュールにはメソッドを使う方法と関数を使う方法がある。
例えば正規表現obj.split(string)とre.split(pattern,string)がある。
速度を調べたらcompileがない分、後者の方が速い。またsplitは第一引数の正規表現を基準としてで文字列を分割し結果をリストで返すが、正規表現を()でくくると基準と同じグループの文字列も全てリストの結果に含めて返す。

match,searchはマッチした箇所の情報をマッチオブジェクトにして返す。findallはマッチした結果を文字列のリストにして返す。matchは文字列の先頭を調べる。searchは文字列全体を調べる。

進捗

4/15 p.365~p.370 12:40~15:15

calendarモジュールの続きを学習した。setfirstweekday()でしカレンダーの頭の曜を引数で変える。firstweedkay()で確認できる。

正規表現について学習を始めた。テキストだけではよくわからなかったのでこのページを参考にした。

re.search(string,0,6)とした場合、当てはまるのは0から5番目の文字列が範囲になる。

進捗

4/12 13:30~15:35 p.358~p.364

このページでstrftime()メソッドとstrptime()メソッドの違いを学んだ。後者の場合アトリビュートをつけるインスタンスにはdatetime.datetimeといった引数を入れない形でもよい。テキストとは違ってstrptime()メソッドはdatetimeオブジェクトにしか使えなかった。

timeクラスは比較演算ができない。

calendarモジュールについて学んだ。格納されているのはメソッド。テキストとは違いcalendar.monthrangeで返されるタプルの一つ目は月の始まりの曜日で、二つ目が月の日数

進捗

4/11 13:20~15:45 16:45~17:45 p.355~p.358

並び替えを行う際に処理が速いbisectモジュールについて学んだ。bisectモジュールに格納されているのは関数。

datetimeモジュールについて学んだ。格納されているのはクラスであり、クラスによってはアトリビュートやメソッドが付随する。strftime()メソッドには引数に''をつけること。

進捗

4/10 13:30~16:30 p.352~p.354

ディクショナリの値がリストの形ならappendメソッドを使って値であるリストに追加できる

このサイトにも書いてあるようにディクショナリに付随するsetdefaultメソッドは、第一引数のキーがすでに存在している場合値が更新されることはない。キーに対して複数の値をまとめたい場合は、第二引数をからのリストにしてappendメソッドを使い追加する方法がある。

ドキュメントに書いてあるように組み込み関数dictは実はクラスである。dictを親クラスとしたcollectionsモジュールのdefaultdictクラスを学んだ。defaultdictは扱う際にインスタンスを立てる。()の中の引数にlistを入れると値が空のリストを持ったディクショナリを作る。intならば値が0のディクショナリを作る。

進捗

4/9 19:00~20:15 p.349~p.352

collectionsモジュールのOrderDictクラスを学んだ。追加順に並んだディクショナリを表示する。ディクショナリに要素を追加するときはディクショナリに変数を与えてキーと値を書いた。OrderedDictクラスの場合はクラスを学習した時と同じようにインスタンスを立ててキーと値を書く。

進捗

4/8 13:10~16:10 p.343~p.348

例外が発生しても例外処理が書いてない場合tracebackというエラーを表示する。この時プログラムは動いていない。tracebackのエラーの下にあるメッセージには詳細が書かれている。

Exceptionは例外クラスの親クラスであり、SyntaxErrorやIndentationErrorのような実行前に起きるエラーの親クラスでもある。

シーケンスの復習をした。setはシーケンスではない。イテレータはいシーケンスをに一つ一つ知らせるといった確認の処理をして取り出すこと。