トップ «前の日記(2010-04-15(Thu)) 最新 次の日記(2010-04-17(Sat))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2010-04-16(Fri) 中途半端な雨だった

真偽判定いろいろ

>>> if 1 : print 'OK'
...
OK
>>> if 0 : print 'OK'
... else : print 'NG'
...
NG

0、None、[]、{}、 ""、 などを偽とし、それ以外を真とする。

>>> { "first": "one",
...   "second": "two",
...   "third": "three"
... }.get("zero", "nothing")
'nothing'

キーに合致したら、その値を返す。
合致しなかったら、"nothing"を返す。

>>> print 4 and  1
1
>>> print 1 and  4
4
>>> print 0 and  4
0
>>> print 4 and  0
0

and の場合、左から順に、偽が見つかるまで評価し、 最初に見つかった偽を返して終了する。
最後まで見つからなかったら、最後の真を返す。

>>> print 4 or 1
4
>>> print 1 or 4
1
>>> print 0 or 4
4
>>> print 4 or 0
4

or の場合、左から順に、真が見つかるまで評価し、 最初に見つかった真を返して終了する。
最後まで見つからなかったら、最後の偽を返す。

>>> a = 3 if 1 else 8; print a
3
>>> a = 3 if 0 else 8; print a
8
>>>
>>> a = ((1 and 3) or 8); print a
3
>>> a = ((0 and 3) or 8); print a
8

ただしこの場合、and の後ろは必ず真でないと、前が真でも偽でも、 8 しか返らなくなる。

>>> a = [3, 5][bool (1)]; print a
5
>>> a = [3, 5][bool (0)]; print a
3

リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。