Welcome to underground

index

Python普及委員会(は言い過ぎた)

スクリプト言語Python(公式)についてのまとめ,のようなもの.構文や基本は省くことにする.他のサイトをあたったほうがよっぽど効率的.
この言語の魅力は,可読性に優れるということ.誰が書いても誰がみてもすぐに判る構文になっているので,大きなプロジェクトでも苦労なく扱えるというわけだ.

リファレンスもたくさんあるので,苦労することはない.OOLなので,自然とそういう手法が身につく. ライブラリ(モジュールと呼ばれる)が充実しているので,標準ライブラリで足りなければそれらを利用すると良い.

プログラムを書いていく上で大事なのは,環境である.いくつかIDEがあるが,emcasでも十分である.
インタプリタは標準でも構わないがヒストリ補完が無いので苦労する(一工夫して入れることも可能). 苦労したくなければ,IPythonを入れるべし.
(※ver0.10ではバグがありマルチバイト文字の入力に不具合がある.
書き換えるのが嫌であれば,ver0.11を入れても良い…が設定方法がガラリと変わったのでこちらのほうが少々しきい値が高い.と思う)

idleも使える.謹製なので便利かと

ヒストリ補完(参照元:エキスパートPythonプログラミング)
下記スクリプトを適当なディレクトリ(ホームディレクトリ)に,".pythonstartup.py"というファイル名で保存. .bashrcや.bash_profileあたりにexport PYTHONSTARTUP="~/.pythonstartup.py"と書いておく.
すると,タブキーを押した時サジェスチョンが出てくる.
pythonrc.py

#coding:utf-8
import readline
import rlcompleter
import atexit
import os

readline.parse_and_bind('tab: complete')
histfile = os.path.join(os.environ['HOME'], '.pythonhistory')
try:
    readline.read_history_file(histfile)
except IOError:
    pass
atexit.register(readline.write_hitory_file, histfile)
del os, histfile, readline, rlcompleter, atexit

コード中で>>>があればインタプリタ上で動作させていることを意味します.
それ以外はスクリプトだと考えてください.
統一も考えてはいますが面倒なので統一はしていません. 出来る限りスクリプトにリンクを張ろうとは考えています.

補足

pythonバージョンは2.6.xを想定しています.2.7はpython3からのバックポートが多くpython3への移行のしやすさから見ると一番良いのですが, いくつかのモジュール(ライブラリ)が動かないのであまりお勧めは出来ません.
(リンク先がver2.7になっていることがありますが,new2.7と書かれていなければ2.6でも動作します.

    python2.7
  • {1, 2, 3}でsetを作れるようになった.(=set([1,2,3])) → 作れるのは辞書でした.
  • withで複数の書き方が有効になる
  • formatで,1000の区切りに,を使用できるようになった
  • ordered-dictionaryの追加
  • etc......
    python3.x
  • printが関数になった!
  • listを返す関数がリストを返さなくなった(map, filter, range, zip).イテレータを返す.
  • 比較演算子で,意味のない比較時には,TypeErrorを返すようになった.
  • longが廃止.intにまとめられる.
  • 1/2で0.5を返すようになった.厳密に値を返すようになる.
  • 内部処理がすべてunicode処理になった.
  • raw_inputがinputに変更
  • シンタックスの追加・変更
  • ライブラリの変更
  • 例外の変更
  • etc.......

と,これだけの変更点がある.What's New In Python 3.0
やはり移行はためらうね.