Pythonの「==」は値を比較し、「is」はオブジェクトの同一性を比較する。
「==」を使用するとき、異なるオブジェクトでもTrueになることがある。
i = 1
print(i == True) #=> True
print(i is True) #=> False
上のコードでは、
変数iはTrueに評価される値のため、「i == True」はTrueになる。
変数iはTrueではないため、「i is True」はFalseになる。
「if i:」と「if i == True:」は、iがTrueに評価される値なら、という意味になるが、
「if i is True:」は、iがTrueなら、という意味になる。
「is」と「==」のどちらを使うべきかは、使用する目的によって決まる。