Python - 'is'와 '=='의 차이점

파이썬에서 is==는 조건문에서 두개의 변수가 같은지 체크할 때 자주 사용하는데 큰 차이점이 있습니다. 실수로 잘못된 연산자를 사용하여 프로그램이 의도된 것과 다르게 동작할 수 있습니다.

1. 'is'와 '=='의 차이

is==는 모두 변수의 동등을 비교하지만 다음과 같은 차이점이 있습니다.

  • is는 변수의 Object(객체)가 같을 때 True를 리턴
  • ==는 변수의 Value(값)이 같을 때 True를 리턴

2. 'is' 예제

아래 코드에서 a, b, c는 모두 empty list입니다. 모두 같은 value(값)을 갖고 있지만 a와 b는 다른 object(객체)이고, c는 a와 동일한 object(객체)입니다. 결과를 보면 a is c만 True를 리턴합니다.

a = []
b = []
c = a

result = (a is b)
print("a is b ?", result)

result = (a is c)
print("a is c ?", result)

result = (b is c)
print("b is c ?", result)

Output:

a is b ? False
a is c ? True
b is c ? False

3. '==' 예제

아래 코드에서 a, b, c는 모두 empty list입니다. ==는 변수의 value(값)을 비교하기 때문에, 아래 코드에서 == 연산자의 비교는 모두 True를 리턴합니다.

a = []
b = []
c = a

result = (a == b)
print("a == b ?", result)

result = (a == c)
print("a == c ?", result)

result = (b == c)
print("b == c ?", result)

Output:

a == b ? True
a == c ? True
b == c ? True

References

Loading script...

Related Posts

codechachaCopyright ©2019 codechacha