Remrinのpython攻略日記

python3に入門しました。python3についてあれこれとサンプルコードとか。

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

 
参考:
pythonドキュメント 条件に付いてもう少し