にたまごほうれん草アーカイブ

はてなダイアリーで書いてた「にたまごほうれん草」という日記のアーカイブです。現在は「にたまごほうれん草ブログ」を運営中です。

Python

Google App EngineのTwitter BotをFlaskとTweepyで作る

PythonのマイクロフレームワークFlaskについて調べていたら以下の記事を見つけました。 Pythonのマイクロフレームワーク「Flask」ならApp EngineのTwitter Botが15行で書ける | TRIVIAL TECHNOLOGIES on CLOUD 練習がてらマネしようと思いましたが、今はTwit…

PIPって何

Pythonでのパッケージ管理ツールの名前。検索したら案の定エレキバン出てくる。 pip 1.1 : Python Package Index easy_installに代わるものと書いてあるけどeasy_installでインストールできる。 $ sudo easy_install pipそうすれば、pip install とか pip se…

文字列のURLエンコードとクエリ文字列の作成

URLに日本語を含めるときにURLエンコードしようとしたら、ちょっと混乱したのでメモ。 単純に文字列自体をエンコードするときはquote()メソッドを使い、辞書からクエリ文字列を作るときはurlencode()メソッドを使う。 >>> import urllib >>> s = 'あいうえお…

from ... import * 使用時のreload

例えば、対話モードでPython使用中に、hogeというライブラリを編集して再度読み込ませたい場合、reload(hoge)で再ロードすることができる。 では、 from hoge import * という形式で読み込んだときはどうすればよいか。 ひとつの方法としては、一旦hogeをimp…

easy_installでエラーが起きたときの対処

結論から書くと、setuptoolsをアップデートしてやり直せばOKだった。 # easy_install -U setuptools エラーが起きた状況 SQLObjectをインストールしようとしてeasy_installを実行したら下記のようなエラーが出た。 # easy_install SQLObject==devSearching f…

デコレータを使う

クリスマスの休日にやることではないかもしれないが、Pythonのとあるライブラリの中のコードで使われていたついでに調べたのでメモ。 関数の上部に「@デコレータ名」という形式で装飾を付けることで、関数に対して付加的な動作を加えることができるもの。 …

配列から重複要素を取り除いた配列を作る

Rubyでいう、uniqメソッドみたいな効果。 set使えばよさそうね。 a = [1,2,3,4,5,1,3,4,5,6,4,2,2,3,4,5,3,4] list(set(a)) #=> [1, 2, 3, 4, 5, 6] Rubyの場合、 a = [1,2,3,4,5,1,3,4,5,6,4,2,2,3,4,5,3,4] a.uniq #=> [1, 2, 3, 4, 5, 6]

適当な人名のリストを作る

本当に適当なので「人名か?」と言われても読めない場合もあるのでそうとも言えず… と、言い訳はいいのでなんかそれっぽいリストを作る。 先頭大文字で後ろに3文字小文字で繋げればなんか人名っぽく見えるだろ!というざっくり感。 import random as r upper…

文字列のスライスとjoin

文字列に対してjoinを実行すると、文字と文字の間に文字を挿入することができる。 kuma = u"クマ牧場!" print "!".join(kuma) #=> ク!マ!牧!場!! シーケンスのスライス時の3番目の値はstepなので、文字列も飛ばし飛ばしで出力することができる。 print "kuma…

range()で生成したリストの逆順を得る

for文でrangeをインデックスにして使うときにちょっとハマったのでメモ。(Python 2.5.5) ハマってたこと リストを逆順にするreverse()メソッドを使おうとして、 a = range(10) a.reverse() #=> [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] となるのに、 a = range(10)…

Pythonのジェネレータでフィボナッチ数列を出力

借り物のみんなのPython読んでる。 イテレータとジェネレータの解説読んでて、今までろくに使ったことなかったなと思い少しコードを書いてみた。 書籍ではサンプルコードとして素数を順々に出力するジェネレータ関数が書かれているので、それを参考にフィボ…