I (incorrectly?) used \'is not\' in a comparison and found this curious behavior:
>>> a = 256 >>> b = int(\'256\') >>> c = 300 >>
"is" is not a check of equality of value, but a check that two variables point to the same instance of an object.
ints and strings are confusing for this as is and == can happen to give the same result due to how the internals of the language work.
int
string
is
==