【日記】気の長いデバッグ
読書記録プログラムを使っていて、初めて読み終えた本が出てきた。
今の所設定をしていないから、何も出て来ないけれども、「読了お疲れ様」くらいのメッセージを、自分に出した方が、やる気が上がるのではないかと考えて、一行追加した。
if int(root.find('./book[@order="' + str(bookreadingorder) + '"]/nowpages').text) == int(root.find('./book[@order="' + str(bookreadingorder) + '"]/allpages').text):
print("!!!読了おめ!!!")
長いけれども、意味は「もし今日読んだこの本のページ数が、この本の全てのページ数と一致した場合には、「読了おめ」と表示する」という意味である。
で、一冊の本を読み終え、登録してみたら、これが機能していなかった。
原因は何だろうと特定しにかかると、すぐに分かった。
上の一文は、直前の、まだ読み終えていないページ数と、その本の全てのページ数を比較していたのであり、それではこれが表示されることはない。その日ちょうど読み終えた数と比較しなければいけない。
if todaypages == int(root.find('./book[@order="' + str(bookreadingorder) + '"]/allpages').text):
print("!!!読了おめ!!!")
とこのように書き換えたら、想像通り機能した……と、確認したいところだが、実際に機能するには、もう一冊、本を読み終えなければいけない。
仮データで試してもいいけれども、次の本を読み終えるまで待つという酔狂なことをしてみてもいいのではないかと思って、読み進めている。