The "is" operator returns True only if two variables are present at the same address in memory. Python internally caches small strings at the same address in the memory for optimization purposes. However, if you use longer strings, Python will not put them at the same address and the "is" operator will return False.
On the other hand, the "==" operator checks if two strings have the same values; it does not care about their memory location.