Python

PythonのfileinputをGoで実装してみた

Pythonの○○をGoで実装してみたシリーズ fileinputは、行単位で処理を行うコマンド(特にUNIXフィルタ)を作るときなどに便利なライブラリ。 import fileinput for line in fileinput.input(): process(line) コマンドライン引数で与えられたファイルの行に順…

Python 3.3〜3.5の変更点まとめ(標準編)

この記事は3.2まではPythonを使っていたが、しばらくPythonを離れ、最近戻ってくることになった人*1向けに、 3.3〜3.5で何があったか(何が起こる予定か)をまとめる記事です。 *1:つまり私

Elm 0.14に際して思ったこと

Elm 0.14がリリースされました。 今回のリリースには後方互換性が保たれない、大きな変更が含まれてます。 これによりHaskellとの違いが大きくなったため、もはや「Haskellベースの言語」という表現はふさわしくないかも知れません。 ところで、このような大…

pyenvオワコン、direnv最強

社内勉強会で発表しようと思ったけど、寿司の運搬という重大任務を仰せつかって、流れてしまったスライドを転載 direnv is an awesome successorof ***env's. from Kenji Omoto (なお原稿では乱立する"***env"をマスコミは「目があって角が2本」としか認識…

らんらんら言えるかな?Pythonのなまえ〜

組み込み方面向け?の Micro Python という実装があるらしい。 http://t.co/6cCc1QvIf6 一体Pythonにはいくつ処理系があるのか? #python— 東京の小本 (@doloopwhile) April 13, 2014 というわけで、知ってるだけリストアップしてみました。 Qiitaで続きを読…

早速Python 3.4.0をインストールする

pip同梱! enum! pathlib! functools.singledispatch! ソースからインストール 伝統の ./configure make install するだけです。 # 依存ライブラリをインストール sudo yum install zlib zlib-devel sqlite-devel ncurses-devel gdbm-devel readline-devel b…

json版sedことjqのPythonバインディングをcythonで作った

jqはjsonデータを加工するコマンド、「json界のsed」と呼ばれています。 jq is a lightweight and flexible command-line JSON processor. jqコマンドでjsonデータを整形・絞り込み - Qiita [キータ] JSONを超絶に読みやすくする jq コマンド - WebAPIバリバ…

pathlibはファイル操作の新標準!

Python Advent Calendar 2013の13日目です。 Python 3.4ではasyncio functools.singledispatchなど画期的なライブラリがいくつも追加されています。それはアドベンドカレンダーで皆さんが紹介されている通りです。 そして!その中で最も重要で画期的と言える…

合計が均等になるようにグループ分けする

問題 製品のテストをJenkinsで並列に走らせていると想像して下さい。 実行するテストケースをノードに上手く割り振っていなかったので、 あるノードではテストが5分で終わるのに、別のノードでは40分もかかってしまっていました。 各テストケースの所要時間…

コーディングミスの見逃しを防ぐスクリプト

git diffをブラウザに表示することで、コーディングミスの見逃しを防ぐ(ことを期待している)スクリプトを作りました。 プログラマーとして働き出してそろそろ1年になるのですが、そこで感じている自分の欠点は、コーディングの凡ミスが多いことです。 コ…

逆FizzBuzz問題

近未来、2016年(・・・って、中途半端に近い未来ですね)では、 Googleの入社試験では、逆FizzBuzz問題を解くことになるそうな。 逆FizzBuzz問題 (Inverse FizzBuzz) - 猫とC#について書くmatarilloの雑記 F#で逆FizzBuzz問題 - Bug Catharsis わぁいInvers…

setup.pyについてのいくつかのメモ

モジュールにソースコード以外のファイルを添付する 添付の種類は4種類あります. (1 - 3) setupの引数として指定する(scripts, package_data, data_files). setup.py内のsetup関数の引数としてファイルを指定します. scripts, package_data, data_filesの違…

Python 2.6との後方互換性を保つための4種のTips または, 2.7の新機能紹介

Pythonは2.7が2010年7月にリリースされ, 現在では2.8をリリースするかが問題になっているようですが, 今でも旧バージョンである2.6への需要は存在するようです.ここでは, 2.6互換にするために注意する点を紹介します. 1. 標準ライブラリ 当たり前ですが, 2.7…

グローバル変数は必要です

Life is beautiful: Python Hack : 噛めば噛むほどおいしくなるクロージャの話クロージャと無名関数を使うと、こんな風に実装することができる。 import yaml def _get_from_disk(): data = open('config.yaml').read().decode('utf8') config = yaml.load(d…

声に出して読みたい7つのPython用語

冷凍マグロ系スクリプト言語として知られるPythonの、もっともすばらしい用語7点をご紹介します。これらのネーミングセンスを身につけることによって、PHPerやRubyistでは不可能な変態力を身につける事が出来るでしょう(Perl Mongerには負けるかも知れない…

「結構便利だからみんな使った方がいいぞ!」という7つのPythonライブラリ

一部で最強と呼ばれているPythonには, virtualenvやipythonのような絶対入れる超定番以外にも, あると便利なライブラリというものがあります.ここではラッキーセブン, 7つご紹介しましょう. なお, furl以外は3.xに対応しています. requests 覚えやすいWebリ…

ドライブを一覧表示するコマンド

コマンドプロンプト上でLaTeXでPDFを作成し、それをUSBメモリにコピーする事が頻繁にあるのですが、USBメモリのパスはどれだったっけマイコンピュータを開くのが面倒くさい!というわけで、pywin32で作ってみました。当然、Windowsでしか動きません #!python…

ソニーからの挑戦状をPythonで解いてみた

Sony Japan | 採用情報|新卒採用|GO FOR IT~情熱と技術が世界を変える~の真似をして、Pythonで書こうと思います。以下で作るCubeクラスの仕様はPyQt4/PySideのQtCore.QRectと同様にしたかったのですが、QtCore.QRectは >>> QtCore.QPoint(0, 0) in QtCor…

みんなのPython を3.xで勉強するためのTips

みんなのPython Webアプリ編がPDFで無料公開されていますが、この本はPython 2.x向けに書かれているので、3.xではそのまま動かない点がチラホラ・・・とりあえずChapter04を読んでみたところ、以下のような変更が必要です。 CGIHTTPServer -> http.server 3.…

エイトクイーン問題を解いた

wikipedia:エイト・クイーン問題 #!python3 #encoding:mbcs from itertools import ( combinations, permutations, product, ) def main(): board_size = 10 n = 0 for y_values in permutations(range(board_size), board_size): queens = set((x, y) for x…

RubyのExecJSをPythonに移植しました

ExecJSはRubyからJavaScriptのコードを実行できるライブラリです。ExecJSは、もしrubyracerなどJavaScriptライブラリがあればそれを利用し、さもなくばコンピュータからNode.jsなどのインタープリタを検索してきます。JScriptも使えるため、自前でV8をビルド…

Pythonスクリプトから管理者権限が必要なコマンドを実行する

Windows 7(多分Vistaも)で、Pythonからregeditなどの管理者権限が必要なコマンドを os.systemやos.popen subprocess.Popen/call/check_callをshell=Trueで呼び出した場合は, 自動的にUACのプロンプトが表示されます。 >>> subprocess.check_call("regedit", …

整数・ローマ数字変換(Python版)

http://d.hatena.ne.jp/fumokmm/20110822/1314013182アラビア数字 ローマ数字変換を行う関数、arabicToRoman および romanToArabic を実装せよ。条件) ・ローマ数字の表記法についてはローマ数字 - Wikipediaを参考にすること。 ・ローマ数字は半角英「I,V,…

Pythonを始める人への日本語情報集

@mopemopeさんからバトンを渡されました、2011 Pythonアドベントカレンダー(Python3) 16日目担当のおもけん(@doloopwhile)です。 Q「RubyとPythonどちらが初心者向けでしょうか?」 A「Pythonは日本語情報が少ないので、Rubyがおすすめです」 質問掲示板な…

\PythonとRubyのdefって何が違ふんです?/

Pythonのdefは関数、Rubyのdefはメソッドを定義します。両者の違いはdefがネストすると現れます。Pythonでは、ネストしたdefではローカル関数が定義されます。ローカル関数はその場で使われるだけで、外部には影響は及ぼしません(グローバル変数に代入した…

PIL無しでアニメGIFを作るPythonモジュールを作った

PythonでアニメGIFを作るには, BoxHeadRoom » Blog Archive » PythonでアニメGIF作成 その1のようなコードがあり, これはPILを使っています.しかし, これのためだけにだけにPILをimportしたくはないし,PILは画像のLZW圧縮の部分にしか使われていません. そ…

PythonでFibBuzz

Codnote.net ScalaでFibBuzz - ( ꒪⌓꒪) ゆるよろ日記FizzBuzzは時代遅れらしいので、ニューウェーブに乗るべく、Pythonで解いてみましたまず、普通の回答 from itertools import islice def fizzbuzz(x): if x % 15 == 0: return "fizzbuzz" elif x % 3 == …

素集合データ構造

元ネタ: http://con-leche.blogspot.com/2010/03/google-devfest-2010.html参考: http://www.kmonos.net/wlog/88.html http://d.hatena.ne.jp/rubyco/20080719/equiv wikipedia:素集合データ構造 素集合データ構造(Union-Find)は、要素を同値類(素集合…

__name__を変更してもエラーは変わらない

デコレータを作るときなど、返り値の関数の.__name__ を設定する事をするわけですが(functools.wrapsでも__name__を変更している)、エラー時には意味がないという話 def some_fn(x): pass some_fn.__name__ = "a good name" f = some_fn f() # Traceback (mo…

pyreadlineをpython3.2で使う

pyreadlineはpython3xに未だ対応していないので、try&errorで適当に弄ってみました。相対importを明示的に書くべき所とか、bytesであるべき所がstrになっている所とか。pyreadline 1.5用patch当て方 $> cd C:\python32\Lib\site-packages\pyreadline $> patc…