[ Python ] == , != 와 is, is not 의 차이점

2021. 12. 13. 10:33·Archive/Develop
728x90
반응형

 

파이썬으로 코드를 작성하다가 어떤 함수 a 의 리턴값과 None 타입을 비교하는 if문을 작성했다.

 

처음에는 아무 생각 없이 == 으로 작성했다가,

생각해보니까 PEP8 에 의하면 None 과의 비교는 is 가 적합할 것 같아서 급하게 수정했다.

 

근데 왜 바꿔야하는지, 더 나아가 == 이나 != 연산자가 이미 있는데

왜 is 와 is not이 있어야하는건지 궁금해서 좀 서칭을 해봤다.

 

 

우선 아래 코드를 실행해보자.

아주 간단하다.

 

 

print(3 == 3.0)
print(3 is 3.0)

 

 

 

실행 결과는 True 와 False.

 

분명 동일한 역할을 하는 연산자 같은데, 왜 두 개의 연산 결과가 다른 걸까?

 

 

 

일단 == 과 != 는 값 자체를 비교하고,

is 와 is not은 객체를 비교한다.

 

 

3과 3.0은 어쨌든 같은 값을 가지니 True가 나온 것이지만,

정수객체와 실수객체는 분명하게 다르기에 False가 나온 것이다.

 

 

 

요즘은 아예 ide 에서 이런 경고메시지가 뜨기도 한다.

 

 SyntaxWarning: "is" with a literal. Did you mean "=="?

 

is 를 값 비교에 쓰지 말라는 경고 문구다.

is 는 True나 False, None 과 비교할 때만 사용하자!

 

728x90
반응형

'Archive > Develop' 카테고리의 다른 글

주석(comment)  (0) 2021.12.14
[ Python ] 파이썬 스케줄러 작성하기(APScheduler) - BlockingScheduler | 파이썬 반복 작업 수행  (1) 2021.12.14
시스템 동작 방식 - Polling VS Event  (0) 2021.12.10
[ SVN ] 내가 보려고 쓰는 SVN 명령어  (0) 2021.12.08
[ Python ] 파이썬 비동기 처리 | asyncio | 비동기란 무엇인가 | 비동기 예제  (2) 2021.12.08
'Archive/Develop' 카테고리의 다른 글
  • 주석(comment)
  • [ Python ] 파이썬 스케줄러 작성하기(APScheduler) - BlockingScheduler | 파이썬 반복 작업 수행
  • 시스템 동작 방식 - Polling VS Event
  • [ SVN ] 내가 보려고 쓰는 SVN 명령어
코뮤(commu)
코뮤(commu)
코딩으로 커뮤니케이션하는 코뮤입니다 😎
  • 코뮤(commu)
    코뮤(COMMU)
    코뮤(commu)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Archive
        • Hacking
        • Develop
        • ETC
      • Algorithm
      • DB&Infra
      • ETC
      • Node
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • IT지식보따리
    • IT가 맛있다
    • IT 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

    백준 풀이
    자바스크립트
    파이썬 기초
    파이썬 알고리즘
    보안뉴스
    Oracle
    코드업 기초
    코드업
    오라클
    백준 파이썬
    oracle db
    비박스
    자바스크립트 객체
    파이썬
    Python
    C++
    카카오 100일 프로젝트
    docker
    파이썬 기초 문제
    Git
    백준
    장고
    파이썬 백준
    코드업 파이썬 기초 100제
    Django
    자바스크립트 API
    Codeup
    javascript
    파이썬 문제
    백준 문제풀이
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코뮤(commu)
[ Python ] == , != 와 is, is not 의 차이점
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.