Dec13th

Python の変更点

Top / Python

  • 追加された行はこの色です。
  • 削除された行はこの色です。
  • Python へ行く。

*構文 [#ocf8fce6]
-関数に引数を渡す時に,名前を指定すれば宣言時の順序に関係なく渡せる
http://cocoatomo.iza-yoi.net/DIP/power_of_introspection/optional_arguments.html
#highlight(py){{
def hoge(hage, foge, doge):
    pass
    return 0

#関数定義時と別の順序で呼べる
hoge(hage = 500, doge = 300, foge = 100) 

}}

-何もしない(空文)
--pass というキーワードが用意されている

-ファイル入出力
--7. 入力と出力
http://docs.python.jp/2/tutorial/inputoutput.html
--open(path, mode)でファイルを開く
---modeは'w’で書き込み、'r'で読み込み、'a'で追記
#highlight(py){{
f = open('hoge.txt', 'r')
}}

-リスト
--[]演算子で要素を定義
#highlight(py){{
array = [0, 1, 1, 2, 3, 5]
}}
--{}ではないことに注意
--append()で要素の追加ができる
--添字に:を指定すると範囲を指定できる
前後の値はそれぞれ省略可能
スライスと呼ばれる

-ループ
--繰返し処理 - for, while 等
http://python.keicode.com/lang/control-flow-loop-for-while.php
--zip() 複数のリストをまとめてループ
forループで便利な zip, enumerate関数
http://python.civic-apps.com/zip-enumerate/

-べき乗演算子 **
op1のop2(乗)を計算する
#highlight(py){{
x = 3
y = x ** 2    #y = 9
}}

-assert 条件文
--条件文が偽なら強制停止
#highlight(py){{
a = 5.0
assert a > 1.0    #通過

assert false        #強制停止
}}

-""" """でコメント
#highlight(py){{
""" コメント """
}}

-class定義
#highlight(py){{
class Hoge:
     def __init__(self, param1, param2):    #コンストラクタ
          self.value1 = param1
          self.value2 = param2
     def show():
          print '%s %d' % (param1, param2)
}}

--__init__メソッドがコンストラクタ
--selfでメンバ変数を呼び出し(自動生成)

--class hoge(parent): で継承
---特に何も継承しなくてもobjectを継承するのがお作法っぽい

--__init__定義時は第一引数にselfを指定する必要があるが,クラス使用時は省略することができる

-importでパッケージを読み込む
--pythonにデフォルトで付いているものもあれば、手動でインストールする必要があるものもある

-def func()の末尾に終端文字が入る訳ではないので、インデントの数が重要

~

*PIL [#m7515255]
-import Imageで画像クラスロード
-Image.open()で画像読み込み
--ディレクトリは / で指定可能
--カレントディレクトリ基準
-
#highlight(py){{
import Image

image = Image.open("hoge.jpg")
print image.size    #画像サイズ

#(0, 0)のピクセルにアクセス
pixels = image.load()
print pixels[0,0]       #(0,0)
print pixels[0,0][0]    #(0,0)のR

#全画素アクセス
for y in range(image.size[1]) :
    for x in range(image.size[0]) :
        print pixels[x, y]
}}

-インストールは実行ファイル形式版を使った方が良い模様

~

*メモ [#h544c149]
-引数名を指定すれば任意の順序で引数を渡せる
http://cocoatomo.iza-yoi.net/DIP/power_of_introspection/optional_arguments.html
#highlight(py){{
def hoge(hage, foge, doge):
    pass
    return 0

#関数定義時と別の順序で呼べる
hoge(hage = 500, doge = 300, foge = 100) 

}}


-日本語コメントを付ける場合,エンコードを指定する必要有り

-エディター
sublime editorがハイライト付きで良さげ

-theano
--pip install theano
--要権限

-cPickle
--Python 3.x系で削除されてるので、使う場合Python2.x(2.7)が必須

-gzip
--最初から入ってる

-numpy
--Windowsはeasy_installやpipでインストールしようとすると失敗するっぽい
--ここから.exeをダウンロードしてインストール
---http://sourceforge.net/projects/numpy/files/NumPy/
--theanoの要求がver.1.5っぽいので1.5のfor python2.7をインストール

-pip(PYPI)
--easy_install pip

-easy_install(setuptools)
--ez_setup.pyをダウンロードしてくる
-->python ez_setup.py

-インストール
--Pythonをインストール
--Python.exeをPathに設定
--PythonXX/Scriptsにもパスを通しておくと良い

*リンク [#b6e849db]
-数値型 int, float, long, complex
http://docs.python.jp/2.5/lib/typesnumeric.html
基本的な数値のキャスト方法

-PIL
http://www.pythonware.com/products/pil/

-PIL 利用ノート
http://www.geocities.jp/showa_yojyo/note/python-pil.html

-Pythonで日本語を使う
http://osksn2.hep.sci.osaka-u.ac.jp/~taku/osx/python/encoding.html

-やっぱり最初は"Hello World"
http://pyshu.blog111.fc2.com/blog-entry-4.html
エントリポイントに関する説明

-PILでのピクセル単位での操作
http://seesaawiki.jp/samplepython/d/PIL%A4ǤΥԥ%AF%A5%BB%A5%EBñ%B0̤Ǥ%CE%C1%E0%BA%EE

-Python/PILによる画像のグレイスケール化とアスキーアート化
http://d.hatena.ne.jp/xef/20120920/p1

-和訳 なぜPythonのメソッド引数に明示的にselfと書くのか
http://coreblog.org/ats/translation-of-why-explicit-self-has-to-stay/

-Numpyの導入
http://gihyo.jp/dev/serial/01/machine-learning/0006

-Python for Windows インストールメモ
http://www.aoki.ecei.tohoku.ac.jp/~ito/python_windows.html

-Install tmux, python, numpy, scikit-learn, scipy from source (CentOS 5.5)
http://dibtp.hateblo.jp/entry/2014/04/17/123656

-Python入門
http://www.pythonweb.jp/tutorial/

-Python 3が後方互換性を捨ててでも求めたもの
http://www.atmarkit.co.jp/ait/articles/0901/31/news017.html

#highlight(end)