2016/08/26 CEDEC 2016

はじめに 手元の環境でpythonのinteractive shellを利用した後、コンソールで入力した文字列のエコー表示がされなくなる問題に悩まされていた。 $ python3.5 Python 3.5.2 (default, Sep 19 2016, 02:49:52) [GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.31)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> ^D>>> $ # ここで入力した文字列が表示されなくなってしまう $ stty sane #これで復活 readlineを有効にせずにbuildしていた模様 readlineを有効にせずにpythonをinstallしていた模様。 osx
Pythonista 3にシェル、Dropbox同期・ダウンロード機能などAppleが許さない機能を追加する iOS最強の統合開発環境Pythonista 3。 開発言語はPython 3.5 / 2.7。iOSとの親和性が高く、単にPythonが書けるというだけでなく、iOSの開発環境として機能します。 2008年から始まったApp Store史上、僕が最高に興奮を覚えたアプリです。日本ではそれほど人気がない一方で、海外での絶賛っぷりが対照的です。 Pythonista 3 カテゴリ: Productivity 販売元: Ole Zorn(サイズ: 244.4 MB) 全てのバージョンの評価: (0 件の評価) こんなエントリを見にくる人がPythonista 3を知った時に覚える感慨に「よくAppleが許したな」、「よくAppleが審査通したな」というものがあるでしょう。 App St
概要 JavaScriptでDOMを作ってるサイトをPythonを使ってスクレイピングしたので、手順をメモ。 大雑把には、ScrapyとSeleniumを組み合わせてやった。 Scrapy Scrapyは、クローラーを実装するためのフレームワーク。 クローラーをSpiderのサブクラス、スクレイピングした情報をItemのサブクラス、スクレイピングした情報に対する処理をPipelineのサブクラス、という風にフレームワークが決めたインターフェースを満たすクラスとしてクローラーを実装する。 scrapyというコマンドが提供されてて、このコマンドを使って、作ったクローラーの一覧を見たり、クローラーを起動したりできる。 Selenium Seleniumは、ブラウザをプログラムから制御するためのツール(でいいのかな?)。Pythonも含めたいろんな言語で使える。 よくWebサイト/アプリの自動テス
はじめに これは、関数型プログラミングの特徴を Python で説明した長編ポエムです。 Python を知らなくてもなんとなく分かるように書いたので、PHP や Java や JavaScript の人も読んでみてください。 【ゴール】 「なぜ関数プログラミングは重要か」という文章で重要とされている「高階関数」と「遅延評価」について理解してもらうこと (遅延評価の説明は次回) 【執筆動機】 関数型な人による関数型の説明がつらいため (関数型の利点を関数型言語で説明されても、関数型言語を知らん人には伝わらんわな) 関数型界隈の騒動を利用して漁夫の利を狙うため (関数型で騒動が起きる → 関数型に注目が集まる → 関数型を勉強するニワカが増える → SICP や OCaml や Haskell に挑む → みんな挫折する → もっとわかりやすく説明してくれ → さっそうと Python が登
多くの関数型プログラミングに関する記事が教えてくれるのは、抽象的な関数型のテクニックです。つまり関数合成やパイプライン、高階関数などです。この記事では違います。ここでは、プログラマが毎日書く、命令型で非関数型のコードの例を示し、それを関数型の形式へ書き換えます。 最初のセクションでは、短いデータ変換のループを取り上げ、map関数やreduce関数に書き換えていきます。2つ目のセクションではより長いループを取り上げ、ユニットに分解し、それぞれのユニットを関数型に書き換えます。3つ目のセクションでは、連続した長いデータ変換のループを関数型のパイプラインに分解します。 ここではPythonでの例を取り扱います。というのも多くのプログラマはPythonを読むのは簡単だと思っているからです。多くの例では、mapやreduce、パイプラインなどの多くの言語に共通する機能を例示するため、Python的な
Pythonをよく使う人にはよく知ってる人も多いのですが、docoptという便利ライブラリがあります。 docoptはargparseやoptparseのようなコマンドライン引数をパースするライブラリなのですが、その発想がコロンブスの卵なのです。 例えばPython標準のargparseだと、argparseのAPIを組み合わせてパーサを組み立てるわけです。するとパーサと一緒にヘルプも作ってくれて、"program --help"などとすると自動生成されたヘルプを表示してくれるようになります。 しかし、そのAPIを覚えるのが大変で、毎回ドキュメントを読まないと忘れちゃうわけです。 import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument
Python で実装され、その後 Java にも移植されたソートアルゴリズムである TimSort が盛大にバグっていることが発見されました。 このバグがどのようにして発生するのかについては、以下のドキュメントを精査して下さい。 TimSort fails with ArrayIndexOutOfBoundsException on worst case long arrays OpenJDK’s java.utils.Collection.sort() is broken: The good, the bad and the worst case どんなことが起こるのか 通常の利用では想定しえない場所でArrayIndexOutOfBoundsExceptionが発生します。 例えば、以下のようなスタックトレースになります。 Exception in thread "main" jav
Before upgrading to lion, I had tab complete working in a python shell via terminal. Following these instructions, it was possible to have tab complete working. Since upgrading to Lion, I am now unable to get tab complete working in a terminal session of Python. I've followed the above instructions to the letter, and it still does not work. Is there a difference with the readline module in Lion? H
はてなブログに移行して最初の記事はやはりPythonネタにしました。 はてなブログいいですね。デザインの編集がやりやすくなったのと、Markdownで書けるのが素晴らしいです。 PyCon 2013の動画を見ていたら、素晴らしい"Transforming Code into Beautiful, Idiomatic Python"という発表を見つけたのでそのまとめです。 今どきのPythonコードのベターな書き方を紹介しています。 Transforming Code into Beautiful, Idiomatic Python ... スライドはこちらにありました 結構長くなってしまったので、知ってる項目は読み飛ばしてもらえばと思います。 ループの基本 整数のループ まずは基本のループ。 Cのfor int i=0; i<6; i++をPythonで単純に書くとこうなります。 for
ぷよぷよ in python haskellの記事眺めてたらこんなの見付けた。 http://qiita.com/tanakh/items/c2e157f0a48667370b0e 問題はこっち。 http://okajima.air-nifty.com/b/2011/01/2011-ffac.html まだ全然haskell力(はすけるちから)が足りないからさっぱり理解できないので、 とりあえずhaskellは置いといて、 せっかくなのでpythonで書いてみる事にした。 なんか pythonの文字列がindex指定で書き換えられないからbytearrayにしたり 探索で隣同士で再帰しちゃって無限再帰しちゃったり 予想外に手間取ったけど、2時間ちょうどくらい…かな。 いや、ちょっと超えちゃったかな。まぁいいや。 c++で書けば良かった。 for(int i=0; i<10; ++i) 形
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに なぜPythonを選ぶか かなり独断と偏見が入っていますが、 シンプルな言語セット 某言語のように、呪文のように短く書けることが命ではない。 それでいて、書くコード量は少なく、すっきりしている。 某言語のように、記号を多用しない。 コードを書いている間Shiftキーを押しっぱなしにならない。 学習コストが低い。 言語セットとしての文法は、わりと平易で、直感で理解できる。 難しい書き方は、後から覚えればよい。 文法書を読むのは、後からでいいでしょう。まずこの講座をやってみましょう。 Djangoフレームワークや、各種Python
流行りのJITコンパイラは嫌いですか?¶ PyPy Advent Calendar 12/23担当の RYO @ 修論提出1ヶ月前です。 いよいよ明日はクリスマスイブですね。 リア充の方もそうでない方も、当記事に目を留めて頂き誠にありがとうございます。 本記事では、他の皆さんが扱われているような実用的なネタとは異なる PyPyの内側の話、特にPyPyのJITコンパイラに関する話題を扱いたいと思います。 したがって、本記事の情報は業務等の役にはまったく立ちませんのでご容赦願います。 さて、この記事をお読みになっている方々の殆どは、 PyPy = JITのおかげで早くなった事で有名なPythonの処理系 という認識をお持ちだと思います。 確かにこの認識は間違ってはいないのですが、 実はPythonにJITを乗せる事で高速化を図る処理系はPyPyだけではなく、 その殆どがPyPyが今程の有名なも
Python API¶ Python/C APIチュートリアル : http://docs.python.org/extending/index.html Python/C APIリファレンス : http://docs.python.org/c-api/index.html Python APIはPythonインストール標準のC言語APIを使用し、拡張モジュールを作成します。 #include <Python.h> static PyObject * fact(PyObject *self, PyObject *args) { int n; int i; int ret=1; if (!PyArg_ParseTuple(args, "i", &n)) return NULL; for (i=n; i>0; i--) ret *= i; return Py_BuildValue("i",
pyqueryはjQueryと同様にHTMLの操作ができるPython用のライブラリです。 PythonでHTMLからのデータ抽出といえばBeautiful Soupの名前をよく見かけますが、jQueryを知っている人にはこっちの方が使いやすいと思います。 内部的にはlxmlを使用しているので以下の記事などでlxmlの使い方にも軽く目を通しておいたほうがいいかもしれません。 Python(lxml)でhtmlを処理する まとめ - Gentleちゃれんじ Tips "pip install pyquery"などでインストールできると思います 動かすにはlxmlが必要になります。入ってない場合にはそちらもインストールが必要かもしれません。 Python 3でも動くらしいです 使い方の簡単な例 PyQueryクラスにHTMLの文字列やURLを与えれば、jQuery風のオブジェクトとして利用でき
iOS用のアプリは通常、開発アカウントを取得し、Macを使って開発します。 開発アカウントを取得するほどではないが、iOSデバイス上で何かやりたい処理がある、という人はいるでしょう。 あるいは、プログラム好きな人なら率先してiOSデバイス上でプログラミングをしたいと思うのではないでしょうか。 そうしたニーズに存分にこたえることができる、iOSデバイス上で動作する統合開発環境がPythonista 3です。 2016年9月21日に開催されたPyCon JP 2016で @equal_001 さんがPythonistaについて発表されていたのでご紹介。 Python支持者のことをPythonistaといいますが、アプリ名はそこから取ったんでしょうね。 正真正銘のPythonが内蔵されていて、ローカルで動きます。 [参考] Kazuhiro AbeさんはTwitterを使っています: 「インタプ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く