Python

確率2%のくじ引きで100万人が当たりを引くまでチャレンジするシミュレーション

だいたい2%くらいの確率でドロップするっぽいGraf Zeppelinのドロップ。けれど実感としては2%なんて嘘だろう? そんなことを思ってしまうくらい苦しんでいるプレイヤーの姿が目について、いくらなんでもしぼりすぎだ、などなど、巷に怨嗟の声がこだまして…

確率2%のくじ引きのシミュレーション

Graf Zeppelinのドロップが、だいたい2%くらいっぽいかもかも、ということで、実際に確率2%のくじ引きで当たりを引くまでの試行回数がどれくらいのバラツキを見せるのか、確認するための簡単なプログラムを書いてみました。入手までの試行回数をキーとした辞…

0埋め、それすなわちゼロフィル

ずいぶん前、文字列オブジェクトにはrjust()なんてメソッドがある、これを使ったら楽々0埋め可能だ、なんていっていましたが、つい最近、zfill()という、そのものずばりの0埋めメソッドがあることを知りました。

URLエンコードを使ってユニコード文字列をCookieにセットする

久しぶりにHTTP Cookieなど使ってみたら、さっぱりノウハウが消えてしまっていて思わぬ苦戦をしました。理由はいろいろあるけれど、日本語など非ASCII文字列をCookieに設定する場合、URLエンコードしないといけないなど、もろもろの仕様をすっかり忘れていた…

こいこいアプリを作りたいと思っています。

ええと、『サマーウォーズ』見ましてね、うわ、なんて面白いんだろう、この映画! って思ったんです。それで花札やりたくなりまして、でも相手がいない。仕方がないから、ネットで遊べる花札、主にこいこいを探したのですが、なかなかこれだっ! というもの…

弁当注文システムをアップデート

先日作った弁当注文システムを、必要あってアップデートさせました。いえね、注文がいつしめきられたかわからないことによる悲劇が幾度か繰り返されたらしいと聞きましたものですから。言語はPython。標準ライブラリのみで動きます。 弁当注文システム

弁当注文システム完成

昨日いってた弁当注文システム。できました。一応テストはしたけど、日をまたいでのテストとかできてないから、今後修正とかもありえるのだけど、まあとにかくできました。言語はPython。標準ライブラリのみで動きます。 弁当注文システム

弁当注文システム作成中

以前から作っていたシステムがなんとか無事にリリースされたので、ちょっと手がすきました。というわけで、思い付いて、弁当注文システムを作成しています。弁当注文システムは、デリバリーの弁当屋さんに注文する弁当の個数、種類をとりまとめるためのシス…

リスト内包表記

『みんなのPython』を眺めていて、リスト内包表記っていうのがあるって知ったのですが、これ、めちゃくちゃ便利。こんなのあったんだ! これまでfor文使って書いてたことが、1行で終わったりする。すごいなと感心してるのですが、説明する気力がないので、こ…

urllib.requestのimportでエラー

いつも使っているPythonのスクリプト。なぜかわからないけれど、エラーが出て使えなくなってた。なんでだろう、urllib.requestなんてないよなんていわれる。おかしいなあ、古いスクリプト引っ張り出してきたのかなあ、と思って確認してみたら、問題はなさそ…

csv.writer()って、多重リストを単純にCSVにしてくれるんじゃないんだ

csv.writer()って、多重リストを単純にCSVにしてくれるんじゃないんだ。文字どおりです。csv.reader()は引数にファイルオブジェクトをとるけれど、これ、別にCSVデータを渡しても処理してくれるから、csv.writer()も同様だと思ったら、こちらはファイルオブ…

非asciiのCSV、Python 2.xではこうやって扱ってた

昨日の続きです。非asciiのCSVをcodecs.open()で開いて、csv.reader()に渡すと、Python 2.xではエラーが出てしまいます。けど、Python 2.xの頃にも非asciiのCSVは使ってたわけで、どうやってたんだろう。ちょっと調べたら、こんな風にしていました。 import …

非asciiのCSVを扱う人はPython 3000を使う方がいいと思う

Python 2.x系では、codecs.open()で開いたファイルをそのままcsv.reader()に渡すと、エラーが出てしまいます。ところがこれ、Python 3.xだと問題なくちゃんと扱ってくれるんです。試しにこんなコードを書いてみました。 import codecs import csv with codec…

MoinMoinを設置してみた

職場でのこと。収集した情報の共有にWikiシステムを使いたいというところがあったので、Pythonで書かれたWikiシステム、MoinMoinを設置しました。最初は、自分が普段使っているノートに設置して様子を見ようと思ったのですが、うまく動作させることができず…

テキストファイルを比較する

先日いっていた、ふたつのテキストファイルの一致性を比較するPythonスクリプトを掲載します。目前の目的をやっつけるのが最優先だったので、どんなファイルにも有効だとは思わないし、ふたつのテキストファイルの行数が一致した場合の処理を書いてなかった…

文字列フォーマット操作とDB-API 2.0は共存可能

Pythonのsqlite3モジュールは大変に便利で、もはやなくなると困るくらいなのですが、これでSQLコマンドを実行する際には、インジェクションなどの危険を避ける目的でDB-API 2.0仕様に準拠したSQLインターフェイスを利用するようにしたほうが、なにかと無難で…

Pythonで特定の日の曜日を求めたい場合は

Pythonで特定の日の曜日を求めたい場合は、当然のことながらツェラーの公式をうんぬんするよりも、datetimeオブジェクトを使った方が断然楽です。例えば今日、2009年10月10日の曜日を求めたいなら: import datetime dt = datetime.datetime(2009, 10, 10) d…

ツェラーの公式、関数版

はてなキーワードでツェラーの公式を見てみたら、Perlによる関数が書かれてたから、Pythonでもそれをやってみることにしました。 from decimal import * def get_day(year, month, date): # Zeller's congruence if month <= 2: month += 12 year -= 1 J = D…

ツェラーの公式

今日発売の『まんがタイムきらら』所収の『ゆゆ式』。そこでツェラーの公式というのが紹介されていたので、試してみるべく、Pythonで書いてみました。私にはめずらしく、コマンドライン引数を取得するスクリプトです。実際にこうした計算を自分ですることは…

3.1.1をインストール

Pythonのバージョンが3.1.1にあがっていたということで、早速インストールしてみました。3.1.1へのシンボリックリンクを作成して、無事使えるようになったのですが、3.0.1を使うこともあるかも知れないと思い、3.0.1は/usr/bin/python3.0、ついでに3.1.1も/u…

Pythonのシンボリックリンク、やりなおし

Snow LeopardにプリインストールされているPythonは、どうも2.6.1の模様。どうせなら2.6.2の方がいいのに、っていうのはおいておいて、以前インストールしたPythonはそのまま残っているみたいだったので、自分の以前書いた記事、Mac OS X 10.5 LeopardにPyth…

cgi.escape()は忘れやすい

PythonでCGIを書く時、特にユーザーに入力させる文字列などを出力する際には、cgi.escape()を通さないと危険なのだけれど、とにかくこれが忘れがち。がーっ、と書いたあとで、書き忘れに気付いたりしたら最悪。結局全部読み直して、cgi.escape()を適切に追加…

画像の連続ダウンロード

連番の付いている画像をダウンロードしたいと思った時、curlは非常に便利で、たとえばexample.comのdataディレクトリにimage0001.jpgから始まる画像ファイル群が1500あったとしたら、こんな風に書いてやればいい。 $ curl -O "http://example.com/data/image…

K-enq.tdのこと

最近、K-enq.tdについてちっとも書いてませんけど、ゆっくりながら、進めてますんで、全然進んじゃいないんですけど。とりあえず、http://newworld.ddo.jp/doc/PythonSpeed/やhttp://newworld.ddo.jp/doc/PerformanceTips/なども読みながら、ちょっとずつで…

Pythonのインスタンス渡し

今日、職場でふと疑問に思ったこと。インスタンス変数に代入されている別のインスタンスのインスタンス変数を、そのインスタンスの外で変更した場合、すでにインスタンス変数に代入されているインスタンスのインスタンス変数も更新されているのだろうか。わ…

スクリプトが間違ってた

BathyScapheのヘルプを整形するスクリプトを実行して、できたファイルをDreamweaverに引き渡してリンクチェックなどしてみたところ、なんと破損リンクが大量に出て、一体なんだ、どうしたんだ、スクリプトを見直してみたら、なんとまちがえてた。具体的には2…

多くの人が必要とするようなのは、ちゃんと用意されてるんだな

以前、Excelに通したために台無しになったCSVを手当てしたことがありました。0埋めされていた文字列が、きれいに0を除去されてしまったっていうような話ですね。私はこのCSVを手当てするにあたりPythonを使ったのですが、文字列を0埋めするのに次のような関…

今日買った本

名著と名高い『みんなのPython』の改訂版が発売されたと聞いて、早速買ってきました。みんなのPython 改訂版作者: 柴田淳出版社/メーカー: ソフトバンククリエイティブ発売日: 2009/04/11メディア: 単行本購入: 23人 クリック: 572回この商品を含むブログ (8…

BathyScapheのヘルプを作成してみよう

Python 3.0.1を使えるようにしたその理由はなにかというと、Mac OS X用の2ちゃんねるブラウザ、BathyScapheのヘルプを作成する時期が近づいてきたと感じられたからでした。BathyScapheには、充実したオンスクリーンヘルプを用意されています。これは有志に…

Mac OS X 10.5 LeopardにPython 3.0.1をインストール

OS XにはPythonがインストールされているのですが、バージョンが2.5とちと古いので、最新のもの、3.0.1をインストールしました。インスールはソースコードから、なんてのは私はどうも苦手でできないので、Download Python | Python.orgからPython 3.0.1 Mac …