Just found some unintuitive behavior while competing in Google CodeJam.
input: pow(10, 20) in [pow(10, 20) * 1.0]
output: True
(ok...)
input: pow(10, 30) in [pow(10, 30) * 1.0]
output: False
(???????????)
(so uh, this behavior is dependent on the size of the number?!)
(is this because big Python integers are represented differently behind the scenes?)
input: True == True
output: False
(ok, all is normal)
input: pow(10, 20) in [pow(10, 20) * 1.0] == pow(10, 20) in [pow(10, 20) * 1.0]
output: False
(more ?????)
input: pow(10, 20) in [pow(10, 20) * 1.0] and pow(10, 20) in [pow(10, 20) * 1.0]
output: True
(and I'm totally lost)