인프런 커뮤니티 질문&답변

김인도님의 프로필 이미지
김인도

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

Python언어 기출문제의 변형 (v2)

A is c

해결된 질문

작성

·

102

0

  • 16분 49초
  • A b c 모두
  • [1,2,3] 인데
  • A is c는 False 인가요?

답변 1

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

파이썬에서 is 키워드는 같은 객체인 경우에는 참, 아닌 경우 거짓으로 판단합니다.

내용이 같아도 다른 객체(주소)를 참조하고 있는 경우에는 False를 반환합니다.

 

외우기 쉬운 방법은, 아예 =으로 할당하지 않고 새로 만든 것들은 False라고 생각하는 것입니다.

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

print(a == b)  # True, a와 b의 값이 같기 때문에
print(a is b)  # False, a와 b는 서로 다른 객체이기 때문에

c = a

print(a == c)  # True, a와 c의 값이 같기 때문에
print(a is c)  # True, a와 c는 동일한 객체이기 때문에

 

아예 새로운 변수에 할당하지 않는 한, 새로운 객체가 태어났다고 생각하시면 됩니다.

 

그런데, 정수형하고 문자열은 is로 해도 true가 나옵니다.

a=10, b=10

c="hello", d="hello"

여기서 a, b와 c, d를 is 비교하면 true 나옵니다.

a = 100
b = 100

print(a is b)  # True

c = "hello"
d = "hello"

print(c is d)  # True

 

이 경우 말고 리스트인 경우에는 false가 나온다고 보시면 됩니다.

 

김인도님의 프로필 이미지
김인도
질문자

감사합니다

김인도님의 프로필 이미지
김인도

작성한 질문수

질문하기