[Python]isと==の違い


==
  • Pythonで、値が同じであれば"=="はTrueを返します.
  • 参照が同じまたは異なるが、「値」のみが同じであることを確認します.
  • is
  • Pythonでは、参照が同じであれば「is」はTrueを返します.
  • 参照が
  • の場合、値も同じです.
  • isを使用して、
  • 変数が指すオブジェクト(アドレス)が同じかどうかを決定します.
  • a = 1
    b = a
    c = 1
    d = 2
    
    if a == b: # True
        print('True')
    else:
        print('False')
    
    if a == d: # False
        print('True')
    else:
        print('False')
    
    if a is b: # True
        print('True')
    else:
        print('False')
    
    if a is c: # True
        print(hex(id(a))) # 0x1d074736930
        print(hex(id(c))) # 0x1d074736930
        print('True')
    else:
        print('False')
    
    if a is d: # False
        print('True')
    else:
        print(hex(id(a))) # 0x1d074736930
        print(hex(id(d))) # 0x1d074736950
        print('False')
    
    if a: # True
        print('True')
    else:
        print('False')