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

정철님의 프로필 이미지
정철

작성한 질문수

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

Python에서만 있는 연산자들 (**, //, :=, is 등)

Python에만 있는 연산자들 질문드립니다.

해결된 질문

작성

·

41

0

a = [1, 2, 3] b = a c = [1, 2, 3] d = [1, 2, 3, 4]


print
(a is c) # False

print(a is not c) # True

 

  • 완전 동일한 메모리를 참조하여야 같은 객체로 보는것인지 궁급합니다.

 

추가 설명 주시면 감사하겠습니다.

답변 1

0

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

네 맞습니다.

두 객체가 같은 메모리 주소를 가리키고 있는지 확인합니다.

 

웃긴게, 짧은 문자열은 파이썬에서 캐싱되어 사용한 것을 그대로 씁니다.

a = "hello"
b = "hello"
print(a is b)  # True

 

숫자도 -5 ~ 256 범위는 캐싱됩니다.

a = 100
b = 100
print(a is b)  # True

a = -5
b = -5
print(a is b)  # True

 

None하고 bool은 어떻게 비교해도 단일 객체로 True를 뱉습니다.

a = None
print(a is None)  # True

a = True
b = True
print(a is b)  # True

a = False
b = False
print(a is b)  # True

 

굳이 이런 것들은 안 넣었습니다.

이렇게까지 시험에 나오지는 않을 것 같아서요.

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

그런데 어차피 섹션이 시험에 드물게 출제되는 범위라서,

저 내용도 방금 추가했습니다.

정철님의 프로필 이미지
정철
질문자

감사합니다!

정철님의 프로필 이미지
정철

작성한 질문수

질문하기