본문 바로가기
다양한 TIP

python != 과 is not의 차이점은?

by 유기농프로그래밍 2023. 6. 5.
반응형

파이썬에서 != 과 is not의 차이점은?

결론부터 말씀드리자면, Python에서 !=와 is not은 동일한 의미를 가지지 않습니다.

 

예시를 보면 이해가 빠를 것 같습니다.

a = [1, 2, 3]
b = [1, 2, 3]

c = a

# 값 비교
print(a != b)  # True (리스트 a와 b의 값은 같지만 다른 객체)
print(a != c)  # False (리스트 a와 c의 값과 객체가 같음)

# is not 비교
print(a is not b)  # True (리스트 a와 b는 메모리 상에서 다른 객체)
print(a is not c)  # False (리스트 a와 c는 메모리 상에서 같은 객체)

# None과의 비교
d = None
print(d != None)   # False (d는 None과 같은 값을 가짐)
print(d is not None)  # False (d는 None 객체)

 

a와 b는 값이 [1, 2, 3]으로 동일하지만, 서로 다른 객체입니다. 따라서 a != b는 True를 반환합니다.

 

is not 연산자는 객체의 메모리 주소를 비교하여 동일한 객체인지를 확인합니다.

 

d는 None 값을 가지는 변수입니다. 

d != None은 False를 반환합니다. 

d is not None도 False를 반환합니다. 

 

이는 None은 파이썬에서 유일한 단일 객체이므로, is 연산자를 사용하여 None과의 동일성을 확인하는 것이 정확한 방법입니다.

반응형

댓글