새소식

반응형
Programming Language/Python

[Python] 파이썬 is와 ==의 차이

  • -
반응형

파이썬 로고 이미지입니다.
Python

 

안녕하세요, Jack Snider입니다. 오늘은 파이썬에서 양쪽의 값이 같은지 확인하는 is와 ==의 차이점에 대해서 알아보는 시간을 한 번 가져보겠습니다.

 

 

파이썬 is와 ==의 차이


is 키워드는 파이썬에서 두 객체가 동일한 객체인지를 확인하는 데 사용된다. 이는 두 객체가 메모리 내의 동일한 위치를 참조하고 있는지를 확인한다. 다른 말로 하면, 두 객체가 같은 메모리 주소를 가리키고 있는 경우에만 is 연산자가 True를 반환하게 된다.

 

예시 코드

# 정수 객체를 생성하고 두 변수가 동일한 객체를 가리키는 경우
x = 10
y = x
result = x is y
print(result)  # True

# 두 개의 리스트를 생성하고 동일한 리스트를 가리키지 않는 경우
a_list = [1, 2, 3]
b_list = [1, 2, 3]
result = a_list is b_list
print(result)  # False

# 동일한 객체를 가리키는 경우
c_list = a_list
result = a_list is c_list
print(result)  # True

# None 객체와 비교
z = None
result = z is None
print(result)  # True

위의 예시 코드에서 첫 번째 예제에서 x와 y는 동일한 정수 객체를 가리키기 때문에 x is y는 True를 반환하게 된다. 두 번째 예제에서 a_list와 b_list는 같은 내용의 리스트를 가리키지만, 서로 다른 객체를 가리키기 때문에 a_list와 b_list는 False를 반환하게 된다. 세 번째 예제에서 a_list와 c_list는 동일한 리스트 객체를 가리키므로 a_list와 b_list는 True를 반환하게 된다. 마지막으로 None 객체는 항상 동일한 메모리 위치를 가리키므로 z is None은 True를 반환하게 된다.

 

 

파이썬 ==

== 연산자는 파이썬에서 두 객체가 동등한 지(equal) 여부를 확인하는 데 사용된다. 이 연산자는 두 객체의 값을 비교하여 값이 동일한 경우에 True를 반환하고, 그렇지 않으면 False를 반환한다. == 연산자는 객체의 메모리 위치나 실제 객체의 동일성과는 관련이 없으며, 단순히 값들을 비교한다.

 

 

예시 코드

# 정수 값 비교
x = 5
y = 5
result = x == y
print(result)  # True

# 문자열 값 비교
str1 = "Hello"
str2 = "Hello"
result = str1 == str2
print(result)  # True

# 리스트 값 비교
list1 = [1, 2, 3]
list2 = [1, 2, 3]
result = list1 == list2
print(result)  # True

# 다른 데이터 타입의 값 비교
num = 10
str_num = "10"
result = num == str_num
print(result)  # False

# 다른 값 비교
a = 5
b = 7
result = a == b
print(result)  # False

# None과 비교
c = None
result = c == None
print(result)  # True

 

x == y

x와 y는 값이 5로 모두 동일하므로 True를 반환한다.

 

str1 == str2

str1와 str2는 문자열 값이 동일하므로 True를 반환한다.

 

num == str_num

10은 정수형이고 "10"은 문자열이기 때문에 False를 반환한다.

 

 

a == b

5와 7은 같지 않으므로 False를 반환한다.

 

c == None

둘 다 None이므로 True를 반환한다.

 

 

 

결론

== 연산자는 두 데이터의 값이 같은지를 비교하고 is참조가 같은지를 확인한다.

728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.