2015년 5월 25일 월요일

파이썬의 진리값, 비교/논리 연산자

진리값

 파이썬에서 참, 거짓은 True 와 False 라는 키워드를 사용한다. (첫 글자가 대문자라는 것에 유의해야 한다.) 진리값은 자체로 변수의 값으로 사용될 수 있으며 논리 연산의 결과를 표현하는데 사용된다. 한 가지 알아둘 것은 파이썬은 False 뿐만 아니라 None, 0 (0.0, 0j, 0.0j, 0+0j 도 마찬가지), 빈 문자열(“” 혹은 ‘’),  빈 집합 ( (), {}, [] )도 False 로 간주한다는 것이다.

비교 연산자

 파이썬에는 다음과 같은 비교연산자들이 있다.

[표 1] 파이썬의 비교 연산자들
연산자
의미
x < y
x보다 y가 크면 True
x <= y
x보다 y가 크거나 같다면 True
x > y
x보다 y가 작으면 True
x >= y
x보다 y가 작거나 같다면 True
x == y
x와 y가 같다면 True
x != y
x와 y가 다르다면 True
x is y
동일한 객체인지를 판별 (x와 y가 같은 참조인지 판별)
x is not y
is 의 부정형 (x와 y가 다른 참조인지 판별)

연산자 ‘==’와 ‘!=’은 객체의 내용(content)를 직접 비교하여 참/거짓을 판별한다. 객체의 형(type)이 다르면 두 객체는 항상 다르다. 단, 숫자형인 경우 int, float, complex 간에도 실제로 같은 숫자라면 같다. 즉, 1 (int형), 1.0 (float형), 1+0j (complex형), 1.0+0j (complex형), 1.0+0.0j (complex형) 는 모두 같은 숫자로 판별된다.

>>> sa = 'hello everybody'   
>>> sb = 'hello everybody'
>>> sa == sb
True

반면 연산자 is 는 두 객체가 동일한 참조(주소)를 가지고 있는 지를 판별하는 것이다. 만약 id(x)와 id(y)가  같다면 x is y 는 True값을 가진다.

>>> sa='hello everybody'   
>>> sb='hello everybody'
>>> sa is sb
False

>>> x=[1,2]
>>> y=[1,2]
>>> x==y
True
>>> x is y
False
>>> z=x
>>> z is x
True

논리 연산자

 논리 연산자는 조건식들끼리 묶는 역할을 한다.

[표 2] 파이썬의 논리 연산자들
연산자
기능
x and y
x와 y 둘 다 True 일 때 True 그 외는 False
x or y
x와 y 둘 다 False 일 때 False 그 외는 True
not x
x가 True 일 때 False

이와 같이 파이썬의 논리 연산자는 다른 언어들과는 달리 자연어(and, or, not)을 사용한다.


댓글 없음:

댓글 쓰기