Python文法メモ

本当にメモ書きです。

スクリプト文字コードの指定

# coding: UTF-8                                                                 

何もしない

pass  #  _(:3」 ∠)_ 

制御文

if文
x = 2
if x == 0:              # 括弧はいらない。
    print "x == 0"
elif x == 1:           # else ifでもなくelsifでもなくelifなのに注意。
    print "x == 1"
else:
    print u"その他"
while文
x = 0
while x < 10:
    print x
    x += 1
else:
    print u"breakでループを抜けなかったときに実行される"
for文
for i in range(10):
    print i
else:
    print u"breakでループを抜けなかったときに実行される"

ラムダ式

# 個人的に括弧を書きたくなる所なんだけど、こんなもんなんだろうか。
l = lambda x,y : x+y
print l(1,2)

関数定義

基本
def func1(a):
    print a

func1(1)  #=> 1
デフォルト引数とキーワード引数
def func2(a, b=1, c=2):
    print (a,b,c)

func2(0)  #=> (0, 1, 2)
func2(a=3,c=5)  #=> (3, 1, 5)
可変長引数
def func3(*args):
    print args

func3(3,4,5)  #=> (3, 4, 5)
dictで引数を受け取る
def func4(**args):
    print args

func4(a=6,b=7,c=8,d=9) #=> {'a': 6, 'c': 8, 'b': 7, 'd': 9}

クラス定義

# 親クラス
class ClassA:
    pass

# 子クラス
class ClassB(ClassA):
    # クラスのアトリビュート                                                                                                                                                           
    attr = 1

    def __init__(self):
        self.a = u"インスタンスのアトリビュート"
        print u"コンストラクタ"

    def method(self):
        return u"メソッド"

    def _private_method(self):
        return u"プライベート?メソッド"

# インスタンスの生成                                                                                                                                                                 
k = ClassB()

# メソッドの呼び出し                                                                                                                                                                 
print k.method()  #=> "メソッド"

例外

try:
    raise Exception("hoge")   # 投げる
except Exception, e:           # 受け取る
    print e
else:
    print u"例外が投げられなかったとき"
finally:
    print u"最後に実行"