[ 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 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

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

  • 최근 글

  • 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 + /
⇧ + /

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