Python의 != 연산자란?
Python에서 !=는 '같지 않음(not equal)'을 의미하는 비교 연산자입니다. 연산자 양쪽에 있는 피연산자의 값이 서로 다르면 True를 반환하고, 값이 같으면 False를 반환합니다.
>>> (10+2) != 12 # 두 표현식의 결과가 같으므로 False False >>> (10+2) == 12 True >>> 'computer' != "computer" # 작은따옴표와 큰따옴표는 동일하게 취급되므로 False False >>> 'computer' != "COMPUTER" # 대소문자가 다른 문자열은 서로 다른 값이므로 True True
is not 연산자란?
반면 is not 연산자는 두 객체의 id(), 즉 메모리에 저장된 객체의 고유 식별자(정체성)가 동일한지를 확인합니다. 두 이름이 같은 객체를 가리키고 있다면 False를, 서로 다른 객체라면 True를 반환합니다.
>>> a = 10 >>> b = a >>> id(a), id(b) (490067904, 490067904) # a와 b는 같은 객체를 참조 >>> a is not b False >>> a = 10 >>> b = 20 >>> id(a), id(b) (490067904, 490068064) # a와 b는 서로 다른 객체 >>> a is not b True
핵심 차이점 요약
!=: 두 객체의 값(value)이 같은지 비교하는 연산자입니다.is not: 두 변수가 동일한 객체(identity)를 가리키는지, 즉id()가 같은지 비교하는 연산자입니다.
따라서 값이 같아도 서로 다른 객체일 수 있으며, 이 경우 !=는 False를 반환하지만 is not은 True를 반환할 수 있습니다. 일반적인 값 비교에는 !=를 사용하고, None 여부 확인 등 객체 정체성을 검사해야 할 때만 is not을 사용하는 것이 권장됩니다.