Python

時間帯重複チェック(応用編)にPythonで回答

応用編(お題:時間帯重複チェック(応用編) - No Programming, No Life)が掲載されていたので挑戦。 基本的な方針としては、期間を表現するクラスを定義する。あとはどうにかする。 実装後の感想としては、期間のコレクションクラスを定義したほうが綺麗…

答案:時間帯重複チェック

お題:時間帯重複チェック - No Programming, No Lifeより。 お題をみてすぐにdatetimeモジュールが思い浮かんだのですが、他の答案では使用していませんねぇ。何か理由があんのかな? unittestモジュールによるテストファーストを実践。どうせテストケース…

Warmup-2>last2

お世話になっております。 皆様はCodingBat*1というものをご存知でしょうか。私も最近その存在を知り、ぼちぼち進めております。TDDでプロダクトコードを書かされる側を体験できます。 さて、私はPythonに取り組んでいますが、上記の問題は再起を使って解き…

Pythonでプロキシを越える

お世話になっております。 会社のネットワークは、プロキシサーバーを経由しないと外部サイトを参照できないようになっています。セキュリティ対策としては有効ですが、クラウドの恩恵を受けるには一工夫が必要です。今日は、python-twitter*1でプロキシサー…

csvモジュール

お世話になっております。 Pythonにはcsvモジュールがありますので、CSVも簡単に扱えます。 >>> import csv >>> import sys >>> w = csv.writer(sys.stdout) >>> w.writerow([1,2,3]) 1,2,3 7 >>> w.writerows([[1,2,3],[4,5,6]]) 1,2,3 4,5,6 >>> w.writero…

エンコーディングについてのメモ

お世話になっております。 Twitter APIにアクセスした際に、文字コード関係でわかったことがあるのでメモしておきます。開発環境は、Cygwin+Python 2.5.2です。XMLで取得し、コンソール(shift_jis)へ表示します。 まず、コード変換にはencode()とdecode()…

デコレーターを書いてみる

お世話になっております。 夜中に目が覚めたので、デコレーターを書いてみました。 # -*- coding: utf-8 -*- import logging import datetime def log(function): function_name = function.__name__ class_name = function.__class__.__name__ start_format…

週末の記事

お世話になっております。 金曜日以降の記事で気になったのは、以下3点です。 http://d.hatena.ne.jp/aureliano/20100114/1263451331 自分の好きなことよりも、お客様にサービスすることを優先しろという話です。 Google Python スタイルガイド — PyGuide - …

「「1から9までの数字を一回ずつ使って2010にする」の検算」の検算2

お世話になっております。 一昨日の「1から9までの数字を一回ずつ使って2010にする」の検算は、小数の計算に問題があるという指摘を受けました。(http://takanory.net/takalog/1192) 解き方も教えていただきましたが、自分でもやってみないとダメだろうと…

「1から9までの数字を一回ずつ使って2010にする」の検算

お世話になっております。 お昼ごろTwitterでつぶやいたのですが、面白いもの(http://www.thesamet.com/2010.txt)を見つけました。 しかし、この中には間違いもあるのではないかと思い、Pythonで検算をしてみました。 結果は、925あるうちの280が間違いと…

Pythonでフィルタを書く

お世話になっております。今日は、Pythonでフィルタのようなものを書いてみました。 とはいえ、ただ単にechoするだけのものですので、大したものではありません。 Pythonの文字列操作と組み合わせれば、簡単に面白いことができると思います。まず、フィルタ…

Pythonでシステム監視

お世話になっております。システムというものは、単一のプログラムのみで完結するものではなく、様々なプロセスやサービスが協調して動作することによって、ようやくシステムとしての役目を果たすことができます。例えば、簡単なWebアプリケーションであって…

FizzBuzzとの3か月(23)

お世話になっております。今日は、昨日の続きです。 FizzBuzzNumberクラスの__add__メソッドをオーバーライドし、計算結果をFizzBuzzNumberクラスのインスタンスとして返すようにしました。以下、コードです。

FizzBuzzとの3か月(22)

お世話になっております。今日は、Pythonに戻ります。 オブジェクト指向の特徴の一つである、継承を使ってみました。以下、コードです。

文字数を数える on Python 3.0

お世話になっております。 以下の記事を拝見しまして、Python 3.0ではどうかと思い、試してみました。 文字数を数える - /var/log/masayoshi/masayoshi.life.log >>> print("レインボーブリッジ封鎖できません!", len("レインボーブリッジ閉鎖できません!"…

FizzBuzzとの3か月(15)

お世話になっております。今日は、Python+再帰で書いてみました。 以下、コードです。

FizzBuzzとの3か月(13)

お世話になっております。今日は、FizzBuzzの定義を設定ファイルに取り出してみました。 通常の業務においても、先輩方より「設定ファイルを変更するだけで対応できるようにしてくれ」と指示されますが、なかなかそこまでは実装できたことがありません。 い…

FizzBuzzとの3か月(12)

お世話になっております。今日は台風の影響により、電車の運行が止まっていました。 差し迫った用事もなかったので、休暇にしてしまいました。さて、今日もPythonによるFizzBuzz実装ですが、昨日までとは方向を変更し、ワンライナーに挑戦してみました。 影…

FizzBuzzとの3か月(11)

お世話になっております。今日はPythonに戻り、より汎用的に使えるクラスを目指しました。 テストコードは大半を流用しましたが、本番のコードはかなり変わりました。以下、コードです。

FizzBuzzとの3か月(6)

お世話になっております。今日はテストコードを直しました。 最初のコードとほとんど同じです。違うのは分岐の条件のみです。以下、コードです。

FizzBuzzとの3か月(5)

お世話になっております。今日は、FizzBuzz問題を少し変えてみました。変更したのは以下2点です。 Buzzとプリントするのは、5で割り切れるときではなく、7で割り切れるときとする。 FizzBuzzとプリントするのは、3と7で割り切れるときとする。 以下、コード…

FizzBuzzとの3か月(4)

お世話になっております。今日は、昨日の予告通り、その数に対して何を返すのが適切かを判断するロジックを変更しました。 変更点は以下のとおりです。 新しくFigureクラスを追加。 Fizz、Buzz、FizzBuzz、Figureの4つのクラスにisAnswerOfメソッドを実装。 …

FizzBuzzとの3か月(3)

お世話になっております。3日目の今日は、多態性を取り入れてみます。 多態性(ポリモフィズム)については、はてなキーワードを参照してください。 あらかじめお断りしておきますが、これから先は無駄に複雑にしていくつもりです。どうぞご了承ください。で…

FizzBuzzとの3か月(2)

お世話になっております。今日は、昨日あげた気になる点を直していこうと思います。まずはこちら。 単体テストと実際のコードがほぼ同じ。単体テストとしては難しいのではないか。 「単体テストとしては難しい」とありますが、「もっと愚直なコードの方が単…

FizzBuzzとの3か月(1)

お世話になっております。@ITにて、以下のような記事を見つけました。 小飼弾「転職活動する暇があったらブログを書け」 (http://jibun.atmarkit.co.jp/ljibun01/cs/200909/02/01.html)この記事では、ITエンジニアを目指すならブログを活用するように勧めて…