はてブロ@ama-ch

https://twitter.com/ama_ch

Python

便乗してPythonでやってみた

簡単な問があったのでPythonでやってみた - 牌語備忘録 元の問題は、10分でコーディング|プログラミングに自信があるやつこい!!からです。 とりあえず10分目標で何も考えずに書いたのがこれ。 #!usr/bin/env python # -*- coding: utf-8 -*- def cards(…

pyspa challenge 第1回やってみた

トラバ送っていきなり答えのリンク張ってしまうのはどうかな? と思ったので、リンクは張らないでおきます>< と思っていたけど、解答編からトラバがきたのでリンク張ります! 問題 pyspa challenge 第1回 - 西尾泰和のはてなダイアリー http://d.hatena.ne…

超セレブな携帯向け割り勘電卓をPythonで書いてみた

携帯電話向け「割り勘電卓」を公開します - 頭ん中 さんを見て、PythonでCGIを書く勉強に書いてみました。 本体: http://ama-ch.com/cgi-bin/warikan.cgi 均等割り電卓と同じ「ような」動作をします。携帯向けとか言いながら携帯向けにWebを作ったことなど…

EmacsのシェルモードでPythonを起動すると違うとこから起動する

Emacsをめでたくフルスクリーンでも使えるようになり、 コード編集画面 実行・デバッグのためのシェルモード バッファ一覧など という感じで3つのウィンドウを配置するようになりました。 シェルモードのおかげでEmacs上で実行までできて便利だなーと思って…

Pythonで関数内からグローバルスコープ変数へアクセスする場合

スコープ関係で悩んだのでメモメモ。 Pythonでは*1、関数内からグローバル変数を参照することができます。 参照 >>> a = 3 # グローバル変数 >>> def test1(): ... print a ... >>> test1() 3 関数内からグローバル変数を参照・表示していることがわかります…

Pythonのインタラクティブシェルで、リスト内の日本語をそのまま表示する

Pythonのインタラクティブシェルはとても便利なんですが、リストやタプルなどのシーケンスの要素が日本語の場合、そのまま表示できません。 >>> lst = [u'あ', u'い', u'う', u'え', u'お'] >>> lst [u'\u3042', u'\u3044', u'\u3046', u'\u3048', u'\u304a'…

MacにPython Imaging Library (PIL)をインストールする

なんだかよくわからないうちに終わってしまったんだけど、一応動くようなのでメモ。 Python Challenge のLevel7はPILが必要らしいので、MacPortsでインストールしてみました。 まず、PILがあるかどうか探します。 $ port search pil icompile devel/icompile…

easy_installが激しく便利

PythonでHTTP周りのあれこれがしたくて調べていたら発見したmechanizeというモジュールを使いたくなって、ダウンロードしようと探していたら、easy_installという便利なモジュールがあるらしい。 こいつがあると、 easy_install モジュール名とやるだけで勝…

しつこく世界のナベアツに挑戦〜今度はワンライナーで〜

3の倍数と3がつく数でahoになるプログラム - メモ帳(はてな) id:hiSAtOがPHPですごく短く書いてて悔しかったので、ワンライナーで書きました。 >>> ["aho" if x % 3 == 0 or "3" in str(x) else x for x in range(1, 51)] [1, 2, 'aho', 4, 5, 'aho', 7, 8…

Re:宮田のチラシの裏

懇親会でお友達になった宮田君がはてな住人になってくれました! id:j_miyata とりあえず、はてな記法の実験のため、なんかソースを載せる約束したんで、今はやりのナベアツ系プログラムを適当に書いてみるテスト。 http://d.hatena.ne.jp/j_miyata/20080625…

MacにMySQL-pythonをインストールする

PythonでMySQLを扱うためのモジュールMySQL-pythonをインストールしました。 ダウンロード SourceForge.net: MySQL for Pythonから、MySQL-python-1.2.2.tar.gzをダウンロードする。 インストール ダウンロードしたファイルを解凍するとMySQL-python-1.2.2と…

Pythonのデフォルトエンコーディングをutf-8にする

以前、site-packagesディレクトリの位置がわからなくて放置していたデフォルトエンコーディングが、久しぶりにやったらわかったのでメモ。 以下の内容を、「sitecustomize.py」という名前で保存。 import sys sys.setdefaultencoding("utf-8") このファイル…

動物の分類でクラスのお勉強

初めてのPython p.475 #!/usr/bin/env python # -*- coding: utf-8 -*- """ zoo.py 以下のような関係を持つクラスを定義し、対応する動物にふさわしいメッセージを表示する Animal | Mammal ┌---+---┐ Cat Dog Primate | Hacker """ class Animal: def repl…

モジュールの一括リロード

「初めてのPython」p.353より #!usr/bin/env python # -*- coding: utf-8 -*- """ reloadall.py 引数として指定したモジュール自身と、そのモジュール内で インポートしているすべてのモジュールをリロードする """ import types def status(module): print …

組み込み関数dir()をカスタマイズする

「初めてのPython」p.344に載っていたdir()のような動作をするソースがなかなか良い感じです。 #!usr/bin/env python # -*- coding: utf-8 -*- """ mydir.py 組み込み関数dir()をカスタマイズする例 指定のモジュールの名前空間に属する変数名の一覧を出力す…

初めてのPythonでよくわからないとこ

p.265に載っている以下のソース >>> t, f = 1, 0 >>> x, y = 88, 99 >>> a = (t and x) or y >>> a 88 >>> a = (f and x) or y >>> a 99 ふむふむ。 これに以下の説明が続きます。 これで一応、問題はないのですが、このコードは「xが決してfalseになること…

printステートメントの処理

初めてのPython p.167 printステートメント オブジェクトのデータをテキストに変換して標準出力ストリーム(stdout)に書き込むステートメント Hello, Worldでまず触れるステートメントだし、これを知らない人はいませんね。 >>> X = 256 >>> print X 256 こ…

回文の判定

初めてのPython 第2版作者: マークルッツ,デイビッドアスカー,Mark Lutz,David Ascher,夏目大出版社/メーカー: オライリージャパン発売日: 2004/11メディア: 単行本購入: 4人 クリック: 286回この商品を含むブログ (104件) を見る Python クックブック 第2版…

Twitterの友達の発言から未フォローのIDを取り出す

Twitterで友達の発言を眺めていると、 「@hoge バカスwww」 なんて発言があって「@hogeってフォローしてたっけ?」なんてことがよくありますよね。・・ありますよね?とにかく僕はよくあります。 そんな僕のジェラシーを解消すべく、python-twitterを利用し…

python-twitterでフレンドリストをファイルに保存する

課題の英語に追われるだけで1日が終わるのはまっぴらゴメンだったので、少しだけPythonで遊びました。 これからpython-twitterで色々遊ぶのに、フレンドリスト*1をファイルに保存しておくと便利なので、さくっとファイルに保存するコードを書きました。 pyth…

すべての文字を各1回使ってできる文字列パターン

codeなにがし::すべての文字を各一回使ってできる文字列のパターン 回答者様の答え(アルゴリズム)がとても綺麗だったので、勉強がてらPythonで書いてみました。 #!usr/bin/env python # -*- coding: utf-8 -*- def pat(arr, level=0, base=""): num = len(…

MacにEclipse+PyDevをインストールする!

昨日1日かけてやっとこさインストールした! EclipseWikiが非常に参考になったので、こちらとあわせてどうぞ。 必要なものをダウンロードする Eclipse Eclipse Downloadsへアクセス 「Eclipse Classic 3.3.2 - Mac OS X (137 MB)」をダウンロードする!最初J…

python-twitterのGetFriends()で100人以上取得する

昨日、フレンドリストを100人以上取得するためにtwitter.pyを色々いじりました。その結果、 users = api.GetFriends(取得ページ番号) こんな感じで呼び出せるようになりました。ページ番号で3を指定すると、ID*1順で201〜300番を取得します。 でもこれだとい…

METHINKS IT IS A WEASEL

どう書くorg:METHINKS IT IS A WEASELより、yattomさんの解答を読ませて頂きました。 勝手にコメントで解説?します。解説というかメモかな。 お題: ランダムな文字からMETHINKS IT IS A WEASELを作るプログラムを作れ。 簡単に流れを書いてみます。 1:…

python-twitterで遊んでみた 基本編

python-twitterで遊んでみたよ!とりあえず基本的な使い方のお勉強。 ちなみにドキュメントはここにあるからね! http://static.unto.net/python-twitter/0.5/doc/twitter.html モジュールの機能自体シンプルだから、ドキュメントも短くて読みやすいです。僕…

今日のPython

スレッドのロック p.374 RLockオブジェクトを使ってクリティカルセクション(ロック〜アンロック)を作る例 lock = threading.RLock() #クリティカルセクションを開始 try: # スレッドの実行コード finally: lock.release() #ロックを解放 pythonでCGIを利用…

python-twitterまとめ 〜導入まで

python-twitterというものを使うと簡単にTwitterのAPIなどで遊べると噂に聞き、導入してみました。 まずは必要なものをダウンロードする python-twitter - Google Codeで、python-twitter-0.5.tar.gzをダウンロードする。 Python Package Index : simplejson…

今日のPython

アトリビュートやメソッドのカプセル化 p.273 Pythonでアトリビュートやメソッドをカプセル化するためには、2つの方法がある。 ・アトリビュート名やメソッド名の先頭にアンダースコアを1つ(_)つける 名前の先頭にアンダースコアがひとつついたアトリビュー…

今日のPython

リスト内包表記(リストコンプリヘンション) p.239 文字列の各文字を文字コードに変換してリストを作成 >>> char = [] >>> for s in "Python": ... char.append(ord(s)) ... >>> char [80, 121, 116, 104, 111, 110] これをリスト内包表記で書いたものが、…

FizzBuzz問題が難しかった

codepad(http://codepad.org/)という素晴らしいサイトを昨日初めて知り、FizzBuzz問題でもやろうと思って書いてみました。 for n in range(1, 101): if n % 15 == 0: print "FizzBuzz" elif n % 3 == 0: print "Fizz" elif n % 5 == 0: print "Buzz" else: p…