2020年6月4日木曜日

pythonでwebアプリが簡単に作れるStreamlitを使ってみる

2020年5月25日月曜日

python3.8のhttp.serverに接続できなかったときに試したこと

2020年4月27日月曜日

pyxelでFlappy Birdのようなゲームを作る

2020年4月23日木曜日

pythonで15パズル

2019年9月22日日曜日

jupyter notebookをインストールして起動する


jupyter notebookを使ってみたかった
Anacondaを入れたことがなかったので入れてみた
WindowsにAnacondaインストールしてjupyter notebookを起動して軽く試すところまで書きます

2018年3月19日月曜日

pythonで簡単なスクリーンショットツールを作る

スクリーンショットを撮りたい。pythonで作りたい。作ろう! というわけで作ります。

最終的に以下のような動きをするコードができる。

  1. スクリプトを起動する
  2. マウスで撮りたいウィンドウをクリックする
  3. 好きなだけprintscreenを押す
  4. するとディレクトリにjpgファイルが
  5. escで終了

大雑把にはこんな環境

  • python3.5
  • Windows10

pillow、keybaord、mouseというライブラリを使うよ!

2018年3月14日水曜日

PyOCRを使って文字認識する

PyOCRとは何か?

tesseract-ocrをpythonから使えるようにしたもの。
pythonからtesseractを呼び出して画像から文字を認識する。
詳しくはhttps://github.com/openpaperwork/pyocr

前提

2016年4月26日火曜日

Effective Python読みました記事書くよ!

部分的に拾って感想を書いていく。よくわかったところと、とりあえず流したところがあった雑な感想。コードも書かぬ。

1章 python流思考

「map、filterを使うでない、リスト内包表記を使うのじゃ」
みたいな結構いろんな本とかブログとかで見かけることが多め。
またmapさんとfilterさんがリスト内包表記さんのやられ役になっておられる……
そろそろreduceさんみたいに左遷されるのではないかと思っている。

1つのスライスでstart, end, stribeは結構やっちゃうことなのでこれからは気をつけていきたい。

pep8スタイルガイドはvimにSyntastic入れてflake8を使うと文法のエラーとスタイルガイドの両方を自動でチェックできて捗ると思います。

2章 関数

「Noneを返すより例外」は確かにその通りなので反省します。とりあえずNoneはやっぱりよくなかった。

クロージャのスコープの話と__call__を実装したクラスを使うのは参考になった。内側の関数の中で外側の変数に値を代入する必要があるときはnonlocalを使うかクラス化する。

3章 クラスと継承

ここでも__call__がでてくる。

プライベートよりパプリック。個人的にはわかりやすい。

4章 メタクラスと属性

個人的には一番参考になった章。
get_hogeとかset_hogeとかやらない。@propertyを使う

5章 並行性と並列性

threadはCPU的には並列ではなくてループをたくさん回す計算処理には向かないけどブロッキングI/Oみたいなpythonの外側にボトルネックがあるときは役に立つ。
コルーチンというyieldを使った並列。
multiprocessingというちゃんとした並列。
この章はこうすればミスが少ないとかそういうtips集ではなくて並列入門な感じがする。

6章 組み込みモジュール

デコレータを使って作った関数をhelp関数に入れた時に期待していた名前が出てこない問題を初めて知った。functools.wrapsを頭の片隅に入れておく。

"組み込みのアルゴリズムとデータ構造を使う"のは当然だと思うけど実践は難しい。あれするためにあの機能が必要だな、pythonなんだからきっとあるだろう。いつもこんな感じでググってる。

7章 共同作業(コラボレーション)

ドキュメンテーション文字列を書く。
virtualenvは必須。

8章 本番運用準備

インスタンスをprintの引数にしたとき、デフォルトだと<__main__.hoge object at 0xごにょごにょ>と出てあまり役に立たないから必要に応じて__repr__を定義する。

unittest大事。mockというライブラリを使うともっと捗ると思います。

cProfileという最適化に便利なモジュールがある。速度低下の原因がどの部分かのヒントが得られる。

おわり

大変参考になった。これから書くコードには多分きっと少しずつ反映されている。

でも過去に作ったオレオレツール群の改善はせぬ。こういうのは一切手を付けず、本当に動かなくなるまで放置するのだ。

2016年4月1日金曜日

BeautifulSoupを使って画像ブログから画像をダウンロードする

あのブログにもこのブログにも対応とか無理なので「画像が並んでて、その画像をクリックすると画像ファイルに飛ぶタイプのブログの1ページ」に限定します。ブログの具体例はありません。
例外とかステータスコードが200じゃない時とか全く考慮してないです。
実行環境

  • Windows10 64bit
  • python 3.5.1 (多分64bit)
tl;dr。長い記事読んでられないと思うのはおかしなことではないです。
  1. pip install requests
  2. pip install beautifulsoup4
  3. hoge.pyみたいなファイルを作ってコードをコピペしてpython hoge.py

2016年3月23日水曜日

Pythonでコマンドライン引数を解析する

python hoge.py fuga --foo bar こんなのを処理したい。 argparseやdocoptやclickというものがあるらしいので軽く調べた。

  • 特に制限がなければdocoptかclick
  • 標準ライブラリを使いたい場合はargparse
  • 大したことしないのでとりあえずsys.argv
これを上から考えていけば良さそう。

2016年3月2日水曜日

Windowsのpython3.5.1にwxPython-Phoenixを入れようとして少し詰まった話

pip isntall ごにょごにょで入らなかったり、入ったと思ったらDLL load failedしたりした。
結論としては

  1. pipのバージョンが7.1.2だったのが悪いのでpipとvirtualenvは最新にする。
  2. とりあえずvisual studio community 2015を入れる。

でなんとかなった。
以下頑張ってググった話をごちゃごちゃと書く。