消費税の計算でちょっとハマった

スクレイピングでのメモ。

消費税の計算で1円誤差が出る。

実際のWEBでの表示

カート前
4075円(税抜き)
カート後
4400円(税込)

計算してみると1円多い

4075 x 1.08 = 4401
なので、実際のカート後に表示されている金額と1円誤差が出る。

原因

税込←→税抜き計算時の小数点以下の扱いの違いで誤差が出る。

税込→税抜き 小数点以下切り上げ
税抜き→税込 小数点以下切り捨て

対策

1の位が1のときは1を引く

おまけ

ださいソース貼っときます。

TAX = 1.08
fee = int(day.next_sibling.next_sibling.text.replace(',',''))
fee = int(math.floor((fee * TAX)+fee))
if str(fee)[-1] == "1" :
fee = fee - 1

Posted in Python | Leave a comment

BeautifulSoup、属性で検索

メモ。IDやクラス名、タグ名でなく属性で検索したかったので調べてみた。
取得したい属性

<li data-locate="roomAttentionAboutChildPrice">子供料金について<br>小学校高学年は大人料金の70%&nbsp;小学校低学年は大人料金の70%&nbsp;幼児(食事/布団)は大人料金の50%&nbsp;幼児(布団のみ)は2160円&nbsp;幼児(食事・布団不要)は1080円&nbsp;</li>

こうやって取る
text = soup.find(attrs={"data-locate": "roomAttentionAboutChildPrice"}).text

attrsに取りたい属性とその名前を辞書で渡せばいい。

Posted in Python | Leave a comment

BeautifulSoupでIDとCLASS名が同じ要素を取得する

Pythonではほとんどスクレイピングばかりしてる。最近スクレイピングしていてはまったこと。
ID名とCLASS名が同じでうまくスクレイピングできないものがあったのでメモ。

for day in soup.select("span[id^=thisMonth], span.thisMonth"):

Posted in Python | Leave a comment

数学苦手だけど機械学習やる・Linear Regression with Multiple Variables

CouseraのMachine Learning courseをやってるのでタイトルも英語。もともと数学になじみがないから日本語でなんというのかもわからないけど、複数の変数を持つ線形回帰でいいのかの?Week1 から Week 11までの講座。いまはWeek 2。途中に5問中4問正解しないと先へすすめない小テストが2つ、最後にOCTAVE/MATLABでの課題提出もあってなかなか先に進めない。仕事でいろいろあってさぼっていたら締め切りが3日後に迫ってきたので、講義を復習しつつなんとかLinear Regression with Multiple Variablesの小テストとOCTAVE/MATLABのチュートリアルの小テストをクリア。つぎは初の課題提出。そのやりかたもふくめて頑張って勉強しないと。

Posted in 数学, 機械学習, 雑談・日記 | Leave a comment

数学苦手だけど機械学習やる・ベクトル/行列

CourseraのMachine Learning講座、ようやくWeek 1を終了。途中5問中4問正解しないと先に進めないテストが2つ出て来たけどなんとかクリア。今日はVector(ベクトル)、Matrix(行列)、Transpose(転置)。基本的なところなので、Regression(回帰)の計算に比べると楽だった。

Courseraを理解するには「やさしく学ぶ機械学習を理解するための数学のきほん」をやってからのほうがいいというので買ったんだけど、今の所この本のほうが難しい。たとえば、生徒役の子がベクトルの内積の式をみて「そうそう、内積ってそんな感じだった。」ってセリフが出てくるぐらいなので、対象としてる読者もこれぐらいだと思う。この辺の基本的な知識がないけどCourseraの講座は結構わかりやすいので、あとはググったりでなんたかなってる。

Week 2は Octave を使ってプログラミングもはじまるようなので楽しみ!

Posted in 数学, 機械学習, 雑談・日記 | Leave a comment