タグ

pythonに関するfn7のブックマーク (21)

  • Pythonワンライナーで数独を解いてみた

    GIGAZINE数学のエキスパートが3ヶ月かけて作成した「世界一難しい数独」なるものがあったので、即席でPythonワンライナー(一行プログラム)を作ったら1秒かからず解けた。問題を作るのは大変でも解析プログラムで一瞬とは儚い。 python -c "import sys;L=[];S=lambda D:(0in D)and[L.append(D.index(0)),[(D.__setitem__(L[-1],i),S(D),D.__setitem__(L.pop(),0))for i in set(range(1,10))-set(D[L[-1]/9*9:L[-1]/9*9+9]+D[L[-1]%9:81:9]+[d for n in(0,1,2)for d in D[L[-1]/27*27+L[-1]%9/3*3+n*9:L[-1]/27*27+L[-1]%9/3*3+n*9+3]]

  • Common Python Patterns

    Here are some tricks, hacks and patterns I like using most while coding Python. I will try to add more when I come across them. Basic One-Liners print [item*2 for item in [1, 2, 3]] # prints: [2, 4, 6] cond = True print 'yes' if cond else 'no' # prints: yes Dynamic Function Arguments def somefunc(self, *args, **kwargs): print 'args: %s' % args print 'kwargs: %s' % kwargs somefunc(1, 2, thirdarg=3)

  • Django 1.2 の変更のまとめ

    先週、 Django 1.2 が出ました。新しくて、良い機能がいっぱい入っているけども、1.1 からの変更をご紹介しようかと思っています。 マルチDB 1.2 では、一番大きい変更は明らかに マルチDB対応 ですね。 settings.py の DATABASE オプションは DATABASES になりました。それで python 辞書で複数のDBを設定する。 以下のように MySQLsqlite、PostgreSQL、それぞれ違ってても構いません。 DATABASES = { 'default': { 'NAME': 'app_data', 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'USER': 'postgres_user', 'PASSWORD': 's3krit' }, 'users': { 'NAME': 'use

  • GAEでOAuthというかTwitter認証してみた。

    あまりオタクにもなれませんでした。 アイデアや書評、プログラミング、投資情報などバラけていますが、 カテゴリは分けているので、興味があるものだけでもご覧ください。 結構てこずりましたが、Google App Engine for Pythonで OAuth認証というかTwitter認証をしてみました。 Softbankの夏モデル携帯でTwitterが機能の一つとして入っているものが発表され、 これからTwitterの人口はどんどん増えるはずなので、 OpenIDみたいな統合認証のようにOAuthを使えたらなぁという思いでコーディングしてみました。 元ネタはサンプルコードで分かるGAE&Twitter API開発。 その節はお世話になりました。 oauth.py, simple_cookie.pyなどは上記のリンク先から取得してください。 verify後にリロードするとバグっていたので、se

    GAEでOAuthというかTwitter認証してみた。
  • [メモ] Pythonのデコレータ – taichino.com

    出てくる度に調べる割に、いつまで経っても覚えられなかったデコレータですが、今回こそ仕留める為にメモエントリーです。まずよく見かけるのは関数の時間を計測するという例ですね。僕はこの形だけを何となく覚えては忘れていました。 #!/usr/bin/python # -*- coding: utf-8 -*- import time # デコレータ定義 def time_func(func): def decorator(*args): start = time.time() ret = func() print '%s was executed, it took %s sec' % (func.func_name, time.time() - start) return ret return decorator # デコレータ適用 @time_func def test(): time.slee

  • FlaskならApp EngineのTwitter Botが15行で書ける — TRIVIAL TECHNOLOGIES 2.0

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 関連 : microneを使ったらApp EngineのTwitter botが14行で書けた Flaskというフレームワークを使って,Google App EngineでTwitterのBotを作ってみたら15行で書けてしまった(あと5行短くなるけど,PEP 8というPythonのスタイルガイドを破ることになるのでそこまで短くしない)。 まずはコードを見てもらいましょう。 #coding: utf-8 from random import choice from twython import core from flask import Flask app = Flask(__nam

  • Big Sky :: デスクトップアプリケーションでも認証可能なOAuth「xAuth」をpythonから試してみた。

    TwitterのBasic認証APIは6月で廃止される予定なのですが、OAuthという認証方法はブラウザを起動してユーザに認証して貰わなければなりません。一見flickrアプリケーションの様な認証方法を想定しますが、OAuthはflickr認証の様にサーバから貰ったトークンをブラウザから渡して認証させる様な物ではありません。 今回OAuthの問題を解決すべくOAuthを拡張した認証方式であるxAuthが取り入れられました。 詳しくはAPIドキュメントか以下のサイトが分かりやすいかと思います。 s-take Blog.: Twitterによる簡易版OAuth: "xAuth" 従来のOAuth認証ではまずアプリケーション(OAuthコンシューマ)がTwitterに接続してRequest Tokenを取得し、認証画面を開いてRequest Tokenを承認させ、承認されたRequest Tok

    Big Sky :: デスクトップアプリケーションでも認証可能なOAuth「xAuth」をpythonから試してみた。
  • Google App Engine/Python で単体テスト - present

    Google App Engine SDK for Python には、単体テスト用に各サービスのスタブが提供されています。このスタブと unittest を使えば、ローカル環境で GAE 用アプリの単体テストが可能です。 GAE/Pythonunittest を使って、単体テストを行うサンプルは次の通り。 #!/usr/bin/env python #encoding: utf-8 import os import sys # 環境設定 # これをしないと GAE のモジュールをインポートできない。 # テスト対象のクラスも同様。 # ここを自分の環境に合わせて書き変えます GAE_HOME = 'Google App Engine SDK ディレクトリのパス' PROJECT_HOME = 'アプリケーションのルートディレクトリのパス' # テストで使う GAE のモジュールのパ

    Google App Engine/Python で単体テスト - present
  • CUIベースなのに無駄にビジュアルなPython用デバッガ - pudb — TRIVIAL TECHNOLOGIES 2.0

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー pudbは,CUI環境(つまりシェル)で動くGUIライクなデバッガ。Pythonには標準でpdbというデバッガがついてくるけど,コマンドラインベースでちょっと使い方が面倒だよね。pudbはpdbよりノリがいい。まあスクリーンショットを見てもらうのが早いかな。 CUIベースでGUIっぽいことをするというのは,レトロなノリだよなあ。でもCUIベースならシェルが動く環境ならどこでも動く,という利点もある。ローカルのPythonでもssh越しのPythonでも,シェル上なら同じように動くというのは嬉しい。 インストールは簡単。いつものごとくeasy_installを使って「$ easy_ins

  • Python でマルチスレッドプログラミング - trial and error

    こんにちは。 最近いろいろごたついてて、ブログなんか更新してませんが、それなりに充実した生活を送っているのでご心配なくw ところで、今日はいつもどおり Python の話題です。 いま、某 LUG であるプログラムを作っているのですが、その中でマルチスレッドを使えたらなーと思って、ちょっといじってみました。 マルチスレッドが使えると...: 複数の作業を並列して実行できる 一定間隔で何かを実行するような処理を簡単にできて便利。 CPU を有効的に使える などいろいろ利点がありますが、今回は主に 2 番目のものをターゲットにしてみました。 結局、1番目も関わってくるんですけどね。 Python でスレッドを生成するには、threading モジュールを使うのが便利です。 http://www.python.jp/doc/release/lib/module-threading.html こい

  • Python基礎文法最速マスター - D++のはまり日誌

    ↓に便乗してPython版も書いてみました。 Perl基礎文法最速マスター - Perl入門〜サンプルコードによるPerl入門〜 Ruby基礎文法最速マスター - Route 477 PHP基礎文法最速マスター - Shin x blog ほとんど上記の記事と同じような内容で書いたのでPython入門記事としては色々抜けていたりしますがご了承ください。 Pythonは現在3.x系がリリースされていますが記事では基的にPython2.6について書きます。 参考文献: 初めてのPython (asin:4873113938) Python Documentation Index http://www.python.org/doc/ Python 和訳Document http://docs.python.jp/2/ 0. 対話環境として使う 対話環境 pythonはそのまま実行すると対話環

    Python基礎文法最速マスター - D++のはまり日誌
  • Google App EngineでCPU Timeを使い切った

    Google App Engine(GAE)でCPU Timeを使い切りました。 GAEは従量制のサービスで、あらかじめ設定した金額内で利用できるリソースが決まっています。これはQuotaと呼ばれていて、CPU、ネットワーク流量、保存データ、API呼び出し回数等々で制限があります。 よく言われる「GAE=無料」というのは、無料(課金しない)なら、そのQuotaが適用されるということです。 GAE+Pythonでとあるサイトの動作確認をやっていたところ、無料分のCPU Timeを使い切りました。 実際に使い切るとこんな感じになります。 サイト ブラウザでアクセスすると、どのページを見ても503が返ってきて、Googleのエラー画面が表示されます。 HTTPレスポンスヘッダは以下。 HTTP/1.x 503 Service Unavailable Date: Sat, 16 Jan 2010

  • Google Python スタイルガイド

    概要¶ これは Google Python Style Guide Revision 2.29 を日語に訳したものです。 家ガイドは CC-By 3.0 ライセンス の基で公開されています。また、ガイドも同ライセンスを継承します。 家ガイドの著者は以下の通りです。 Amit Patel Antoine Picard Eugene Jhong Jeremy Hylton Matt Smart Mike Shields また、ガイドの翻訳者は以下の通りです。 Kosei Kitahara ガイドに誤植、誤訳があった場合は issue で教えてください。 その他ガイドに関する問い合わせは、サイト最下部に記載のメールアドレスか @Surgo にお願いします。 はじめに¶ PythonGoogle で使われている主要なスクリプト言語です。 このスタイルガイドは Python によ

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Gmailの新着メールをiPhoneにお知らせするスクリプト書いた - YAMAGUCHI::weblog

    動機 im.kayac.comのアカウント取って、iPhoneアプリを珍しくお金払って買ったのに最初にちょろっと遊んだくらいで全然使ってなかった。なんかすげーもったいないので、とりあえずタイトルのアプリ作ってみた。 参考 im.kayac.com 面白法人カヤック。面白い。 Gmailフィードのまとめ。〜RSSリーダーで新着チェック!〜 Gmailのヘルプとかぱぱっと見たけど全然載ってない。非推奨ってこと? 作ったもの gmail2kayac.py - 0x7d8 - 某所同期の勉強会用レポジトリ - Google Project Hosting Universal Feed ParserとPit使ってます。またPython2.5以前の人はsimplejsonも入れてください。 「お前、PythonでGmailにpop/imapアクセスして通知した方がいいじゃねーか!」という声がどっかから

    Gmailの新着メールをiPhoneにお知らせするスクリプト書いた - YAMAGUCHI::weblog
  • 高田純次BOTと森田一義BOTが僕のノートPCから巣立ちました - とりあえずなんですけどね

    BOTつくろう会参加 いつのまにか師走に突入、突進、激突、破壊、炎上の季節になってきましたがみなさんいかがお過ごしで。 かれこれ2週間ほど前に、BOTつくろう会の勉強会が開催されました。この勉強会は「Google App Engine×pythonでBOTつくろうぜ!」というコンセプトなのですが、「え?python?パイソンっておいしいんですか?」状態の僕は持ち前の空気読まない力を存分に発揮し、何も事前勉強せずに参加してみたら、みんなすっごい優しいのな……!右も左もわからない僕に対して懇切丁寧に教えてくださって涙が出ました。*1ああいう優しさに触れて、生きてることのありがたみを今さらながら実感したんですけど、その話は置いておいて、例のBOTの話をします。はい。 俺の家にあるBOTをなんとかしたいんや・・・ ぼくが2年ほど前に思いつきで作った高田純次BOTと森田一義BOTが奇跡的なフォロワー

    高田純次BOTと森田一義BOTが僕のノートPCから巣立ちました - とりあえずなんですけどね
  • Google App Engine入門:実行効率を犠牲にせずに開発効率だけを上げるテクニック

    一つ前の富豪プログラミングのエントリーともつながる話だが、Google App Engineは「ちゃんとスケーラビリティを考慮してアプリケーションを作るには何に気をつけなければならないか」を勉強するには絶好の環境だ。そこで今回は、その「ケチな大富豪的なプログラミング」の実践編。 Google App Engine上のアプリをいくつか書いているうちに、必要に迫られて自然発生的にできてきたのが、gdispatchという数十行のコードからなる小さなモジュール(ソースコードはgithubに置いてある)。これをGoogle App Engineに標準で付いて来るwebappと組み合わせてフレームワークとして使っている。 gdispatchを設計する上で重視したのは、 (1)Google App Engine上でのアプリの開発を効率化する上で「明らかにこれがあると開発効率が格段に向上する」というもの以

  • Plurk.comで使われているTokyo Cabinetをベースにしたキー/バリューデータベース·LightCloud MOONGIFT

    Twitterに似たWebサービスを提供するPlurk.com。時間軸を持つことで、よりインタラクティブな印象与えるサービスだ。世界的に展開しているのでアクセス数も相当多い。そのような中で活躍するのがキャッシュサーバだ。 実践で使われている信頼性高いキー/バリューデータベース Plurk.comでは3つのデータベースが使われている。一つはMySQLもう一つはmemcached。そして最後にLightCloudだ。 今回紹介するオープンソース・ソフトウェアはLightCloud、Tokyo Cabinetをベースにしたキー/バリューデータベースだ。 LightCloudはmixiなどでもお馴染みのTokyo Cabinetを利用して構築されている。ライブラリはPythonのみではあるが、他の言語へのリプレースもそれほど難しくなさそうとのことだ。実際にPlurk.comで使われているという点が

    Plurk.comで使われているTokyo Cabinetをベースにしたキー/バリューデータベース·LightCloud MOONGIFT
  • 講義資料 - PukiWiki

    講義資料 † 注: 直したつもりではありますが去年からの更新のし忘れで,python.logos.ic.i.u-tokyo.ac.jp というサーバ名が,ときどき marten.logos.ic.i.u-tokyo.ac.jp となっていることが有るかもしれません(もうないつもり).marten はすべからく pythonと読み替えてください ここには、講義のスライドや配布資料がアップされます。 ↑ テストデータ, reference情報など † 10/30 mini-Python文法 grammar.txt 10/30 字句解析器テストデータ tokenizer_test.tar.gz 11/14 構文木ヘッダsyntree.h.txt 11/14 構文木Cソースの一部syntree.c.txt 11/14 構文解析木ヘッダparser.h.txt 11/14 構文解析木Cソース一部al

    fn7
    fn7 2007/11/13
    勉強勉強、、、orz
  • Python Workshop the Edge 2007

    来る6月30日、東大駒場キャンパスでPython Workshop the Edge 2007が開催されます。 「Pythonコード添削道場」はこのワークショップのセッションの一つで、私、西尾 泰和と増田 泰さん、柴田 淳さんの3人で投稿されたコードを添削するという企画です。 この企画はみなさんにコードを投稿して頂かないと始まりません。 コードの内容は自由です。自由投稿のページのコメント欄から投稿してください。 また「投稿してといわれても、ちょうどいいコードがないなぁ」という人のために、お題が7つ用意してあります。お題に挑戦してみて結果のコードを投稿するのもよいでしょう。お題の解答はそれぞれのお題のページのコメント欄から投稿してください。 コードの投稿の際に名前を書く必要はありません。 完全に匿名でも、自分にしかわからないようなハンドルネームでもOKです。その方が添削する我々も、容赦なく添

    fn7
    fn7 2007/06/19
    勉強したいな