boolと条件
真偽値boolや条件などについて。
真偽値bool
・True, Falseの2つの値のみ。
・True,=1, False=0で変更できない。(python2では変更できた)
True = 0 # SyntaxError: can't assign to keyword
False | 数値のゼロ、空文字列、空配列、False |
True | 他すべて |
・必要になったら、True=1, False=0の数値として扱われる。
print(True) # True print(True + True + 1) # 3
・条件分岐や繰り返しに使える。
x = 5 if x > 0: print(x > 0) # True if True: print(True) # True if 1: print(x) # 5 if 2: print(x) # 5 if -1: print(x) # 5
# and, orは短絡 (short-circuit)演算子 # 左から右へ評価し、結果が確定した時点で評価を止める。 # 戻り値は最後に評価された引数 # 最後の引数3を評価するまで確定しない。 print(1 and 2 and 3) # 3 # (1 and 0 and) の時点で評価がFalse(=0)と確定するので3は評価されない。 print(1 and 0 and 3) # 0 # (0 and)の時点で評価がFalseと確定 print(0 and 1 and 3) # 0 # 最後の(3/0)は評価されない print(1 and 0 and (3/0)) # 0 print(0 or 1 or 2 or 3) # 1 print(0 or 0 or 10 or 20) # 10 string1, string2, string3 = '', 'Trondheim', 'Hammer Dance' non_null = string1 or string2 or string3 print(non_null) # 'Trondheim'
・3項演算子のような書き方ができる。
print(1==1 and "T" or "F") # T print(1==0 and "T" or "F") # F