String comparison in Python: is vs. == [duplicate]

I noticed a Python script I was writing was acting squirrelly, and traced it to an infinite loop, where the loop condition was while line is not ''. Running through it in the debugger, it turned out that line was in fact ''. When I changed it to !='' rather than is not '', it worked fine.

Also, is it generally considered better to just use ‘==’ by default, even when comparing int or Boolean values? I’ve always liked to use ‘is’ because I find it more aesthetically pleasing and pythonic (which is how I fell into this trap…), but I wonder if it’s intended to just be reserved for when you care about finding two objects with the same id.

4 s
4

Leave a Comment