タグ

Pythonとblogに関するtakebu002のブックマーク (5)

  • Python で正確な小数の計算 (1) - Decimal モジュールを使う

    1. 思っていた答えと違った少数の計算 実際に行った計算の例を挙げる。 29 - (54.2 - 52.0) / 0.1 暗算すれば、答えは 7 ということはわかる。 ある実装において、上記の計算に対して、 int() 関数を適用して、 その値を元に、配列の要素を取得する という操作を行った。その結果、想定していた挙動と違い、ハマった。 (+_+) print range(0,10)[int(29 - (54.2 - 52.0) / 0.1)] 7 という答えが返ってくるかと思いきや 6 。 2. いろいろな丸め関数 int() 関数について調べると、2.1 組み込み関数 には、 int([x[, radix]]) 文字列または数値を通常の整数に変換します。(…)浮動小数点数から整数へ変換では (ゼロ方向に) 値を丸めます。引数が通常整数の範囲を超えている場合、長整数が代わりに返されます。

    takebu002
    takebu002 2010/01/28
    printしてみる
  • Pythonで日本語文字列を扱う

    Pythonで日語文字列を置換しようとする度にググるのでいい加減まとめておく。前提としてPython 2.6.1だと、文字列は全部Unicodeだと見なされる。で、Unicodeじゃない文字列は単なるバイト列として扱われる。(Python 2.6.1対応。Python 3.0では未確認) まず、日語(たぶんマルチバイト文字全般)の処理方法。# -*- coding: utf-8 -*-先頭にこれを書いて、ソースはutf-8で保存する。 # -*- coding: utf-8 -*-str = "こんにちは世界"print strstrは当然utf-8で保存されてるし、出力もそう。Windowsのコンソールなんかでやると文字化けする。 # -*- coding: utf-8 -*-str = "こんにちは世界"print str.decode('utf-8')pythonはユニコードが標

  • pythonで時間の計算 - $ cd ./.

    15:46:13の616秒前っていつだ?って時のためのメモ。 $ python >>> import datetime >>> d = datetime.datetime(2007, 11, 20, 15, 46, 13) >>> d - datetime.timedelta(0, 616) datetime.datetime(2007, 11, 20, 15, 35, 57) 手打ちではめんどうだし、スクリプトに書くほどでもないし。 他にいい方法を探索中。

    pythonで時間の計算 - $ cd ./.
    takebu002
    takebu002 2008/02/20
    timedelta
  • 西尾泰和のはてなダイアリー

    前回の「最近Scrapboxを使っています」という投稿から約1年が経ちました。 その後、こちらはまったく更新されず、一方Scrapboxには続々と記事が投稿され、1000件を超えました。 そろそろきちんと「ここはもう更新されない場所で、今更新しているのはこちらのScrapboxだ」と明確化すべきかなと思います。 はてなダイアリーは僕が使ってきた色々な自己表現ツールの中で、最も長い期間使われたものでした。長らくありがとうございました。 最近はScrapboxを主に使っています。 Scrapboxで作成日付をタグに入れて新規ページ作成する方法 - organize-ideas - Scrapbox Scrapboxで文章オンリーのページを作った際に余白を有効活用する - organize-ideas - Scrapbox 前々からそろそろはてなダイアリーはobsoleteなのでどこへ移行しよう

    西尾泰和のはてなダイアリー
  • 西尾泰和のブログ @ Cybozu Labs: Python2.4以降での高速なソート

    どうも、ご無沙汰です。 このブログをはじめた当初は「1日1エントリー公開しよう」 などともくろんでいたのですが、はやくも2週間以上間が空いてしまいました。 今回の話はCPythonにバージョン2.4から追加された機能についてです。 みなさんは、例えば「タプルの入ったリストを、そのタプルの2番目の要素でソートしたい」とか 「Entryオブジェクトのリストを、その属性updateTimeの値に従ってソートしたい」という場合、 どうしていますか? まずは2.3以前から可能だった 「sortメソッドに比較用の関数を渡す方法」の実行にかかる時間を調べてみます。 # sortメソッドに比較用の関数を渡す方法 d.sort(lambda x, y: cmp(x[1], y[1])) 実行時間の測定にはtimeitモジュールを使います。 (10.10 timeit -- 小さなコード断片の実行時間計測)

  • 1