참고 자료
https://docs.python.org/3/library/stdtypes.html
파이썬 버전 3.7 기준
파이썬 자료형 및 연산자(1)
불린(Boolean)형
○ 0(False)과 1(True)로만 이루어진 단순한 자료형이다.
○ 주로 비교연산자에서 출력되는 자료형이 불린형이며, 보통 비교연산자 및 논리연산자를 사용하여 제어문에서 흐름을 제어할 때 많이 사용된다.
○ 정확히는 정수형의 한 형태지만(0과 1은 정수이다.) 제어문에 많이 사용되어 따로 나눈다.
○ 논리형 자료형이라고도 표현한다..
관련 내장상수
○ False: 거짓 값을 의미한다.
○ True: 참값을 의미한다.
※ false와 true는 인식을 못함 꼭 맨 앞 알파벳은 대문자 사용하도록 한다.
논리 연산자
○ 논리연산자는 논리 연산을 나타내는 기호이다.
연산자 |
기호 | 사용 예 |
의미 |
and |
& | x and y x & y |
x와 y가 둘 다 True이면 True를 출력하고 둘 중 하나라도 False이면 False를 출력한다. |
or |
| | x or y x | y |
x와 y가 둘 다 False이면 False을 출력하고 둘 중 하나라도 True이면 True을 출력한다. |
not |
| not x |
x가 True면, False를, x가 False이면 True를 출력한다.(반대로 출력) |
※ 연산자(예: and, or) 대신 기호를 써도 동일한 결과가 출력된다.
※ 이외 NOR, NAND, XOR 등 다양한 논리연산자가 있지만 순수 파이썬에서는 따로 이러한 연산자들을 제공하지 않는다.
논리연산자의 출력 예:
and | ||
입력 x |
입력 y |
출력 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 | 1 | 1 |
or | ||
입력 x | 입력 y | 출력 |
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 1 |
not |
|
입력 x |
출력 |
0 |
1 |
1 |
0 |
※ 위의 표에서 1은 True를 0은 False를 의미한다..
출력예)
In[7]: True and True
Out[7]: True
In[8]: False and True
Out[8]: False
In[9]: False or True
Out[9]: True
In[10]: not True
Out[10]: False
※ and, or 연산자의 실제 메커니즘은 어떨까?
- or, and연산자의 개념은 위에 설명한대로이나 파이썬에서 구현하는 메커니즘은 약간 다르다.
- or 연산자의 경우 입력 x y중 큰 값을 취하며, and 연산자의 경우 작은 값을 취한다.
- 예를들어 "24 or 1"을 연산할 경우 24를 출력하며 "24 and 1"을 연산을 할 경우 1을 출력한다.
- 두 값중 큰 값 혹은 작은 값을 출력하기 위해 논리연산자를 쓰는건 코드 가독성 측면에서 매우 좋지 않으므로 min max 함수를 이용을 권장하고 논리연산자는 논리연산에만 사용하도록 한다.
비교 연산자
○ 비교연산자는 말 그대로 크기나 객체를 비교하는 연산자이다.
○ 비교연산자의 출력은 불린형으로 나오며 비교연산자에서 값이 참이면 True를 거짓이면 False를 출력한다.
○ 비교연산자를 사용하기 위해선 객체의 타입이 같아야 한다. (숫자형은 제외된다.)
연산자 |
의미 |
< |
작다. |
<= |
작거나 같다. |
> |
크다. |
>= |
크거나 같다. |
== |
같다. |
!= |
같지 않다. |
is |
객체 아이덴티티가 같다. |
is not |
객체 아이덴티티가 다르다. |
※ is와 ==의 차이는 무엇인가? (숫자형을 예로 든다.)
- ==는 크기 혹은 값(value)가 같음을 검사한다.
- is는 객체가 같음을 검사한다.
- 예를들면 1.0 == 1는 True지만, 1.0 is 1은 False를 출력한다.
- (정확히는 파이썬에서는 변수에 주소가 있는 형태가 아니라 각 숫자에 주소가 있고 그 주소가 일치할 경우 객체가 같다고 인식하는거 같은데, 솔직히 정확히는 모르겠다.)
출력예)
In[3]: 1 == 1.0
Out[3]: True
In[4]: 1 is 1.0
Out[4]: False
In[5]: 1 is not 1.0
Out[5]: True
'Python > 파이썬 기초' 카테고리의 다른 글
문자열형(string)과 관련 함수/메서드 - 파이썬 기초(5) (0) | 2018.11.12 |
---|---|
시퀀스형(리스트, 튜플, 레인지)과 관련 함수/메서드 - 파이썬 기초(4) (0) | 2018.11.11 |
숫자형(정수형,실수형,복소수형)과 산술 연산자/메서드 - 파이썬 기초(3) (0) | 2018.11.10 |
파이썬의 개요, 특징, 활용 가능성 - 파이썬 기초(1) (0) | 2018.11.04 |
PEP8 한글 번역 - 파이썬 기초(0) (0) | 2018.10.31 |
댓글