python¶
Contents
基本事項¶
できること¶
pythonの強みは、シンプルな設計と多彩なライブラリだと思います。
様々な言語がありますが、PHP, Ruby, Perl, R, Bash 等とできることは同じと考えて差し支えありません。
- 基本的に以下のことは他の言語と被るので、pythonで使えるようにしましょう。
- 数学
- 正規表現
- SQL
- XML
- シェルスクリプト
- 各種プロトコル(http, smtp, ftp)
- フレームワーク(Django)
有名ライブラリ¶
- フレームワーク
- Zope
- Django
- Twisted
- Flask
- Jinja
- Tornado
- Pyramid
- Pylons
- gevent
- 数学
- Matplotlib
- Numpy
- Scipy
- Brower
- Brython
- python-webkit
- 開発環境
- vertualenv
- Sphinx
- IPython
- Jython
- reStructuredText
- PyObjC
- ipdb
- pip
- easy_install
- ネットワーク
- BeautifulSoup
- requests
- lxml
- furl
- GUI
- Tkinter
- PyQt
- WxPython
簡単なことを簡単にするとは?¶
よくスクリプト言語は、簡単なことが簡単にできると言われています。
例えば、リスト構造を挙げます。
arr = [1, 2, 3, 4]
これだけで、簡単にリストが構築出来ます。
リストを操作するためのメソッド(append等)が用意されているので
arr.append(5) # [1, 2, 3, 4, 5]
このように、簡単にデータを扱うことができます。
では、2分木を実装したい場合はどうでしょうか?
arr = [[1,2], [[3, 4],[5, 6]]]
となります。
同じリスト構造でも、2次元配列を扱うためのメソッドはありません。
pythonの場合、簡単に操作できるリスト構造と、面倒な操作になる構文木は分けて実装すると思います。
つまり、pythonでは極力2次元の配列は避けて、1次元のリストでプログラムを組む方向性がよいと考えます。
一方、関数型言語では
((1 2) ((3 4) (5 6)))
と表現自体は同じですが、使用する関数は
car, cdr
と一貫しています。
このため、構文木もリストも同じデータ構造として扱います。
結論として
- pythonは用途に分けて、よく使われる間数が実装されています。(関数の特化)
- 間数型言語は、どのデータに対しても一貫した処理をします。(関数の一貫性、シンプル)
が言えると思います。どちらも大切だと思います。
export PYTHONSTARTUP=~/.pyrc #.bashrcにpythonシェルの環境変数を設定
echo "
import rlcompleter, readline
readline.parse_and_bind( 'tab: complete' )
readline.write_history_file('.py_history')
" >> $PYTHONSTARTUP
環境変数に値を加えても、実行時のときだけに反映される。