月別アーカイブ: 2011年3月

積みすぎた箱舟

積みすぎた箱舟 (福音館文庫)
積みすぎた箱舟 (福音館文庫)

生き物系で久しぶりに面白い本に出会った(星5個)。
この本自体は去年買ってたんだけど、積ん読して放置してた。もったいない。

著者は1920年代にインドで生まれた英国人、ジェラルド・ダレル。
この若者が22歳の時に、半年間、カメルーンに野生動物の採取に行った時の話。

最初の数ページを読むと、もうこの本は当たりだとわかる。(表紙が古臭く見えるので、損している気がする。この表紙は原書の挿絵から取ったそうだけど、本人が書いたものなんだろうか。)

アフリカとか、自然とか、動物とか、原住民とかに対する、ありがちな偏見がなく、現実を冷静に観察している姿勢には好感を持たずにはいられない。しかも明るくて前向きでユーモアがある。アフリカの人間社会ではなくて、自然の方を書いてあるのもいい。

他にも著書がたくさんあるらしいので、一つ楽しみが増えました。

google app engine for python で小数点のある数字を整数に変換する

たとえば、123.00を123に変換する方法。小数点以下はかならず00がくるようになってる。

こんなの簡単にできそうだけど、手こずった。

まず、いきなりint()を使うとエラーが出た。int()を使うと小数がある場合は、無理やり整数にできると思ってたけど、たぶん元が文字列なので上手くいかないんだと想像。
次に、float()を使ってみるとエラーがでなかったので、その後でint()を使うと上手く行った。
これで小数の文字列→小数→整数と変換

pvalue=int(float(Price[i].text.encode(‘utf-8’)))

表示する場合は、

str(pvalue)

として、また文字列に戻してあげないとエラーが出た。

取り敢えずこれで行けたけど、プログラムはまったくの素人なので、たぶん他にもっと簡単な方法があるはず。

pythonの文字列と数値変換

数値の値によって条件分けする場合、
文字列になってる物を数値に変換しないといけない。PHPだと自動でやってくれるけど、pythonは手動でしないといけない。

整数の場合は、int()
小数点がある場合は、float()

でOK。
appengineで使ってるんだけど、いったん数値にしたものは、表示する場合にstr()で文字列に変換しないとエラー発生。
パイソンはほんとシンプルだけど文字列とか文字コード関連のエラーで時間を取られる(涙)。

メモ

昨日はVPSの方で、負荷を減らそうといろいろやってたけど

単純にぐーぐるAPPの方に放りこんで任せてしまうのが楽だと気づいた・・・。

つい慣れてる方を使ってしまいがちだけど、合理的に数字で判断するように気をつけよう、

新しいものを柔軟に取り入れないと時間を無駄にしてしまう。

cron関連メモ

cronで動かすスクリプトについて。
例えば、PHPファイルをスクリプトとして動かす場合は、ただアドレスを書くだけだとエラーになる。

正しくは
php /ルートからのアドレス

エラーとか出た場合わかりにくいので、コマンドで直接打って動くか確かめる方が早い。
あとはインクルードや、ファイルを書きだす場合のアドレスもルートから書かないと全部エラーが出た。

いちいちプログラムで動かすと負荷がかかるのと、表示が遅くなるので、定期的にcronで静的ファイルを書き出させて
表示には静的ファイルの方を使うようにした。

この辺のことは、行き当たりばったりでしてるので、規模が大きいサイトの作り方の定石みたいなものを
そのうち本買って勉強しないと・・・。