何かを書き留める何か

数学や読んだ本について書く何かです。最近は社会人として生き残りの術を学ぶ日々です。

Python

Pythonの組み込み函数sumについて

Pythonで有限体を実装しようと思い立ち、j2kun/finite-fields · GitHubを参考に体上の多項式環を実装しようとしていた。 多項式の和で組み込みのsumを利用しようとしたらTypeErrorが生じた。原因を調べたところ、sum内で組み込み型intと自作の体のクラスと__…

Pythonでメタクラスを使ってみたかった

先日、 第5回Python文法詳解を詳解する会に参加した。 Python文法詳解を詳解する会 - 第5回 (2015/06/10 19:00〜)python-in-depth.connpass.com Pythonの名前空間とクラスに関する話が続き、最後にメタクラスが登場した。 メタクラスは名前こそ聞いたことが…

Wordにソースコードを貼る

どうでもよい前書き 何故、あなたはWordでソースコードを扱うことになったのだろうか、胸に手を当てて考えて欲しい。 テキストファイルで十分じゃないか?そう思うのであればテキストファイルを使うべきである。 しかし、Wordでソースコードを扱いたくないの…

第4回Python文法詳解を詳解する会に参加して

第4回Python文法詳解を詳解する会に参加した。講師である石本さん、会場である(株)クロス・マーケティング様には感謝を申し上げたい。初台は大学時代通過するだけの駅で初めて降りた。なんだかお洒落なビルであった。 折角なので、記録したメモを公開したい…

『Effective Python』Item 18: 可変長引数で視覚的ノイズを減らそう

『Effective Python』の続き。*argの使い道。 Effective Python › The Bookwww.effectivepython.com Pythonの函数の引数に*をつけると可変長引数となる。Item 18では2つ注意点をあげている。 まず、*をつけるとタプルとして展開される点である。 例えば、次…

『Effective Python』Item 17: 引数によるイテレーションは防御的に行う

『Effective Python』の続き。イテレータは使い捨て。 Effective Python › The Bookwww.effectivepython.com イテレータは状態を持っている(ステートフル)ので、「使い終わった」という状態が存在する。また、「使い終わった」と「元々何も無い」が区別で…

『Effective Python』Item 16: リストを返す代わりにジェネレータを検討しよう

『Effective Python』の続き。ジェネレータ便利みんな使おう。 Effective Python › The Bookwww.effectivepython.com まだ翻訳したのはItem 16までであるが、『Effective Python』には大きく2つのテーマがあると思う。 ビジュアルノイズを減らせ メモリ不足…

『Effective Python』Item 15: クロージャと変数スコープの関係を知ろう

『Effective Python』の続き。Pythonのスコープを勉強しなおした。 Effective Python › The Bookwww.effectivepython.com クロージャを理解しようとして書いたのが次の実用性に欠けるコードである。 def outer(out): def middle(mid): def inner(inn): print…

『Effective Python』Item 14: Noneを返すよりも例外を発生させよう

『Effective Python』の続き。第二章突入。 Effective Python › The Bookwww.effectivepython.com 第二章は函数の扱い方。返り値にNoneというのはやったことがないが、結構使われているのだろうか。 何が問題なのかは次のコードで一発だと思う。 def divide(…

『Effective Python』Item 13: try/except/else/finallyブロックを活用しよう

『Effective Python』の続き。for/elseとtry/except/else/finallyのelse`の扱いの違いとは Effective Python › The Bookwww.effectivepython.com タイトル通り、try/except/else/finallyをフル活用しようぜ、という話。 try/finallyは確実に終了処理をしたい…

『Effective Python』Item 12: forやwhileループ後のelseブロックは避ける

『Effective Python』の続き。for/else、while/elseダメ絶対 Effective Python › The Bookwww.effectivepython.com Python 言語リファレンス — Python 3.4.2 ドキュメントを読むと、for文やwhile文の後にelse節を追加できることが書いてある。 筆者は、いか…

『Effective Python』Item 11: 複数のイテレータを同時に処理するならzipを使おう

『Effective Python』の続き。そろそろAmazonのリンクは目障りなので外す。アフェリエイトなどやっていないのでね…。 Effective Python › The Bookwww.effectivepython.com 互いに関連している複数のリストを処理する際に、 names = ['Cecilia', 'Lise', 'Ma…

『Effective Python』Item 10: rangeよりもenumerateを使おう

『Effective Python』の続き。 Effective Python: 59 Specific Ways to Write Better Python (Effective Software Development Series)作者: Brett Slatkin出版社/メーカー: Addison-Wesley Professional発売日: 2015/03/08メディア: ペーパーバックこの商品…

『Effective Python』Item 9: 大きなリスト内包表記ではジェネレータ式を検討しよう

『Effective Python』の続き。みんな大好きリスト内包表記第三弾。 Effective Python: 59 Specific Ways to Write Better Python (Effective Software Development Series)作者: Brett Slatkin出版社/メーカー: Addison-Wesley Professional発売日: 2015/03/…

『Effective Python』Item 8: リスト内包表記では2つ以上の式を避ける

『Effective Python』の続き。邦訳は出るのですか。 Effective Python: 59 Specific Ways to Write Better Python (Effective Software Development Series)作者: Brett Slatkin出版社/メーカー: Addison-Wesley Professional発売日: 2015/03/08メディア: ペ…

『Effective Python』Item 7: mapやfilterの代わりにリスト内包を使おう

『Effective Python』の続き。まさかの連投。 Effective Python: 59 Specific Ways to Write Better Python (Effective Software Development Series)作者: Brett Slatkin出版社/メーカー: Addison-Wesley Professional発売日: 2015/03/08メディア: ペーパー…

『Effective Python』Item 6: 単一のスライスではstart, end, strideの同時利用を避ける

『Effective Python』の続き。Item 5の続きでもある。 Effective Python: 59 Specific Ways to Write Better Python (Effective Software Development Series)作者: Brett Slatkin出版社/メーカー: Addison-Wesley Professional発売日: 2015/03/08メディア: …

『Effective Python』Item 5: シーケンスのスライス方法を知ろう

『Effective Python』の続き。翻訳はでるのだろうか。 Effective Python: 59 Specific Ways to Write Better Python (Effective Software Development Series)作者: Brett Slatkin出版社/メーカー: Addison-Wesley Professional発売日: 2015/03/08メディア: …

『Effective Python』Item 4: 複雑な式の代わりにヘルパー関数を使おう

『Effective Python』の続き。続いた。 Effective Python: 59 Specific Ways to Write Better Python (Effective Software Development Series)作者: Brett Slatkin出版社/メーカー: Addison-Wesley Professional発売日: 2015/03/08メディア: ペーパーバック…

『Effective Python』Item 3: bytes、str、unicodeの違いを理解しよう

『Effective Python』の続き。 更新が遅いのは訳してから感想を書くことにしているからであるが、別に翻訳を公開するわけじゃないから…と思いつつ。 Effective Python: 59 Specific Ways to Write Better Python (Effective Software Development Series)作…

『Effective Python』Item 2: PEP8スタイルガイドに沿って書こう

『Effective Python』の続き。 Effective Python: 59 Specific Ways to Write Better Python (Effective Software Development Series)作者: Brett Slatkin出版社/メーカー: Addison-Wesley Professional発売日: 2015/03/08メディア: ペーパーバックこの商品…

『Effective Python』Item 1: 利用しているPythonのバージョンを知る

紀伊國屋から注文していたBrett Slatkin『Effective Python』が届いた。 Effective Python: 59 Specific Ways to Write Better Python (Effective Software Development Series)作者: Brett Slatkin出版社/メーカー: Addison-Wesley Professional発売日: 201…

PythonでGF(2)の拡大体

GF(2)とは位数が2である有限体のことである。体とは簡単に言えば四則演算が定義され閉じている集合である。 有名な体には有理数体(分数を含む体)、実数体、複素数体があり、一般的な知名度は無いが代数的数の集合も体となる。 計算機上でも四則演算が出来…

Pythonで整数剰余環

これは、代数構造を実装しようとして四苦八苦して生み出された謎の記録である。複雑なプログラミング、大規模な開発を会社から指示される前に自分でやってみたいと思い、題材として代数を選んだ。まずは一番簡単そうな有理整数環の剰余環を実装しようと思い…

『Python in Practice』を読む【3.4 Iterator Pattern】

先日、Amazonで注文した『Python in Practice』(PiP)がやっと届いた。これでも当初の予定よりも2週間ほど早い。Python in Practice: Create Better Programs Using Concurrency, Libraries, and Patterns (Developer's Library)作者: Mark Summerfield出版社…

Pythonで頑張る『Java言語で学ぶデザインパターン入門』【Singletonパターン】

【前回までの粗筋】 はてなブックマーク - おれのすたんぷ - 2014年9月29日より 普通にPythonのデザインパターンの本じゃだめなんですか?という純粋な疑問。 僕もそう思います。今日はSingletonパターンである。『Python文法詳解』によると、PythonではNone…

Pythonで頑張る『Java言語で学ぶデザインパターン入門』【Factory Methodパターン】

【前回までの粗筋】 Chaplinの『Modern Times』と(Template|Factory) Methodはそんなに関係がない。今日はFactory Methodである。Template Methodの考えをインスタンスに応用したもの。 インスタンス生成の枠組みだけを作り、詳細はサブクラスに投げる。 """…

Pythonで頑張る『Java言語で学ぶデザインパターン入門』【Template Methodパターン】

【前回までの粗筋】 財布からお金が消えた。専門書は高い。今日はTemplate Methodである。Javaでいう抽象クラスとインタフェースは何が違うのかが理解できていない気がしてきた。 インタフェースの場合はクラスの親子関係から離れて実装できるのだろうか…。…

Pythonで頑張る『Java言語で学ぶデザインパターン入門』【Adapterパターン】

【前回までの粗筋】 OJT(お前が 自分で トレーニング)今回はAdapterパターンである。つまりはWrapperである。GoFによると、2つのインタフェース間の非互換性を解消するためのパターンである。 これはわかりやすい。Adapterパターンにはクラスの継承による…

Pythonで頑張る『Java言語で学ぶデザインパターン入門』【Iteratorパターン】

電気通信大学で情報系(通信系?)らしきことを学んだが、不幸な事にオブジェクト指向プログラミングに触れる機会が無かった。プログラムと言えば講義の課題と数学の研究の実験のみでオブジェクト指向プログラミングを知らなくても生きていける環境にあった…

Pythonで自分のTwitterのツイートを用いて遊ぶ試み

仕事でちょっとした作業をやりたいときにそれをPythonで書くことがある。もっと本格的に業務でPythonを使いたいのだがまだまだ布教が足りないようである(どう考えても新人が発する台詞ではない)。布教のためにはPythonで何かできるかを自分で示してその威…

NuitkaでPythonを高速化する

追記(2014年1月13日) 使い方を勘違いしていたので書き直しました。 追記(2014年1月14日) もっと人が釣れそうなタイトルにしました。 NuitkaとはPythonコンパイラである(と作者は述べている)。タイトルは「Nuitka is a Python compiler.」の直訳。とり…

Pythonによる雑なビンゴマシーン

ビンゴやるぞビンゴ ビンゴゲーム機ないから10分でプログラム作ってくれ お、おう— ヌルまゆ (@_nullmayu) 2014, 1月 2 こういうツイートを見かけたのとbisectを1回ぐらい使ってみたかったので。エンターキーを叩く度に数字がでます。それだけ!気軽にプログ…

冬休み課題の解答を提出します

冬休み課題②:円周率を使わない話 - マクロツイーターにある冬休みの課題をSymPyの宣伝を兼ねて提出する。 問題は上記のリンクを参照して欲しい。 import sympy t = sympy.Symbol('t') x = sympy.Symbol('x(t)') y = sympy.Symbol('y(t)') alpha = sympy.Sym…

テンパズルに決着を

テンパズルは、4桁の数字を一桁の数字4つとみなし、これに四則演算を用いて10を作る遊びである。これをPythonで解いてみた。ZeroDivisionErrorが出ても例外処理で難なく処理できるので楽である。 import itertools def is_make10(target): nums = [x for x i…

Pythonで遺伝的アルゴリズム

今年は自分の研究と関係のないプログラムを組むことにはならない、はずだ!— Xaro Spam Cydeykn (@CardinalXaro) 2013, 12月 3 意味深な自分のツイートを引用したことにあまり意味は無い。Pythonで遺伝的アルゴリズムを行うにはPyevolve、Pygene、DEAPという…

手軽にインタラクティブ(?)なシステムを

TeX & LaTeX Advent Calendar 2013のために書かれた記事ではありません。 私が大学院に進学し、ショックを受けたのは見知らぬ横文字が飛び交う講義が多かったことである。電気通信大学の学部時代に学科改組が行われた故の悲劇である。その横文字の1つが「イ…

「秘密の質問」に答えます

「秘密」は全角でと言われて困っている。全角乱数生成ツールを作ろうかな pic.twitter.com/CHcOJLCGMS— Haruhiko Okumura (@h_okumura) 2013, 12月 21(全角乱数発生ツール,速攻で作った)— Haruhiko Okumura (@h_okumura) 2013, 12月 21「秘密の質問」とは…

NetworkXと学ぶグラフ理論 その2

前回、グラフの定義を行いその同型も定義した。今回は部分グラフについて書きたい。 部分グラフ あるグラフが別のグラフに含まれるとか含むという概念をまず定義する。 $G,G'$をそれぞれグラフとする。$V(G') \subset V(G)$ かつ $E(G') \subset E(G)$ であ…

NetworkXと学ぶグラフ理論 その1

概ね次のものを参考にしている離散数学への招待・上作者: J.マトウシェク,J.ネシェトリル出版社/メーカー: 丸善出版発売日: 2012/06/05メディア: 単行本(ソフトカバー)この商品を含むブログを見る グラフの定義 数学に限らず、ある概念を説明するためには…

NetworkXと学ぶグラフ理論 その0

はじめに 「NetworkXでグラフ理論」という書籍なりテキストは得てしてツールであるNetworkXの使い方に終始して肝心のグラフ理論は単なる道具として扱われる傾向がある(と私は思っている)。なるべくNetworkXは添え物にしてグラフ理論の話題を中心に書いてい…

自分のためのnetworkXメモ

「ランダムグラフを生成し保存する、そしてある操作をして得られたグラフをまた保存をする」というのはグラフ理論をやる人ならばよくある光景ではないだろうか。そこで私は以下の様なPythonコードを書いた。 import networkx as nx import matplotlib.pyplot…

Pythonっぽいとは

この記事で考えたことがある。 いずれも「カウントディレクトリにtestdirなるディレクトリを作成する」というPythonコードである。 import os try: os.mkdir("./testdir") except FileExistsError: pass import os if not os.path.exists("./testdir"): os.m…

CTeX(もどき) -TeX & LaTeX Advent Calendar 2013-

TeX & LaTeX Advent Calendar 2013のために書かれた記事です。 Xaro Cydeykn||12月7日:hak7a3> TeX & LaTeX Advent Calendar 2013のネタが2つ完成した…つもり #texadvent2013— Xaro Spam Cydeykn (@CardinalXaro) 2013, 11月 30 家にあるアドベントカレンダ…

パス付Zipファイルをこじ開ける

作ってみたかったので作ってみた。 """ openzip2: パスワード付zipファイルを総当りでこじ開けるスクリプト 使い方:python openzip.py zipfile.zip strset passlength zipfile.zip : こじ開けたいzipファイル strset : 対象文字列 小文字・大文字・数字・記…

1つのTeXファイルから2つのPDFファイルを作る -TeX & LaTeX Advent Calendar 2013-

TeX & LaTeX Advent Calendar 2013のために書かれた記事です。 senopen||12月6日:Xaro Cydeykn>

『モンティ・パイソン ある嘘つきの物語 〜グレアム・チャップマン自伝〜』を見て

先日2013年11月28日に新宿ピカデリーにて映画『モンティ・パイソン ある嘘つきの物語 〜グレアム・チャップマン自伝〜』を見に行った。

Dentoo.LT #5 反省会

本日2013年11月10に電気通信大学の公認サークルMMAHome - 電気通信大学MMA主催のDentoo.LT #5に参加してきた。詳細はDentoo.LT #5 : ATNDにある。初めてライトニングトークをやるのに一番手だったり、人前で喋ると何を言っているのかわからなくなる性質であ…

円周率表を求めて

人は時として円周率を計算したくなる…

PythonTeX 依存からの脱却

PythonTeXを用いてTeXマクロみたいなものを作る話は2回した。 PythonTeX でTeX マクロもどきを作る - 何かを書き留める何か PythonTeX で \now のようなものを作る - 何かを書き留める何か PythonTeXは便利だが、PythonTeXを用いたLaTeXファイルを誰かに渡し…