Pythonの変わった言語仕様に関してメモ

ブール演算

and, orを使用すると、整数の1, 0(True, False)ではなく、オペランドのオブジェクトが戻されて、True, Falseが表現される。

>>> 2 < 3, 3 < 2
(1, 0)

>>> 2 or 3, 3 or 2
(2, 3)
>>> [] or 3
3
>>> [] or {}
{}

whileとforにelseが使える

>>> seq = (1, 2, 3)
... for v in seq:
...     if v == 5:
...         print 'found!'
...         break
... else:
...     print 'not found!'
...
not found!

elseは、breakしないで、forがFalseになった場合に通るので、分岐するためには、breakは必須かも。ちなみに、上記の場合は、in演算子を使用した方が簡単だが、あくまでサンプルということで。