>>>s1 = 100
>>>s2 = 100
>>>s1 is s2
True
>>>b1 = 257
>>>b2 = 257
>>>
>>>b11 = b12 = 257
>>>b1 is b2
False
>>>
>>>b11 is b12
True
>>>
b1 and b2 is False because of PyLongtObject what happen on b11 and b12? 
any idea please help me.  
>>>s1 = 100
>>>s2 = 100
>>>s1 is s2
True
>>>b1 = 257
>>>b2 = 257
>>>
>>>b11 = b12 = 257
>>>b1 is b2
False
>>>
>>>b11 is b12
True
>>>
b1 and b2 is False because of PyLongtObject what happen on b11 and b12? 
any idea please help me.  
 
    
    It's a (convoluted) duplicate of About the changing id of a Python immutable string.
During evaluation phase in REPL loop only one constant with value 257 is created in memory.
compile("a = b = 257", '<stdin>', 'single').co_consts  # (257, None)
When executing, same object (with same address in memory) is assigned to both names.
>>> dis.dis(compile("a = b = 257", '<stdin>', 'single'))
  1           0 LOAD_CONST               0 (257)
              3 DUP_TOP             
              4 STORE_NAME               0 (a)
              7 STORE_NAME               1 (b)
             10 LOAD_CONST               1 (None)
             13 RETURN_VALUE        
Since both names point to same object, it's expected that id on those objects returns same number, therefore is returns True.
 
    
    