이번 포스팅에서는 파이썬의 3가지 데이터 타입 (Data Type) 중 논리형(Boolean)에 대하여 공부를 해보고자 한다.
논리형(Boolean)
참(True)과 거짓(False) 중 한 가지만 가질 수 있는 데이터 타입을 논리형(Boolean)이라고 한다.
주로 조건문에서 많이 사용되며, True와 False가 예약어로 미리 지정되어 있기 때문에 첫 문자를 항상 대문자로 사용해야 한다.
bool( 값 ) 함수
다른 타입을 논리형 값으로 변환하는 함수이다.
빈 문자열 , 숫자 0, None과 같이 값이 없으면 False, 나머지는 True로 반환한다.
숫자: 0 - False, 양수/음수 - True
문자열: 글자 수가 0인 문자열 - False, 1글자 이상 - True
None: False
자료구조: 원소의 개수가 0개 - False, 1개 이상의 원소가 있는 것 - True
숫자
print(bool(10), bool(0), bool(-20)) # True False True
문자열
print(bool(""), bool("Abc"), bool("A"), bool(" ")) # False True True True
None
bool(None) # False
논리형(Boolean) 관련 연산자
논리형(Boolean) 연산자는 비교 연산자, 논리 연산자, 조건 연산자로 구분할 수 있다.
비교 연산자
비교 연산자는 두 값(모든 타입 비교 가능) 사이의 상대적인 크기를 판단한다.
어느 쪽이 더 큰지, 작은지 또는 같은지를 판단한 후에 그 결과를 논리형으로 리턴한다.
연산자 | 설명 |
== | 두 값의 크기가 같다. |
!= | 두 값의 크기가 같지 않다. |
> | 왼쪽 값이 오른쪽 값보다 크다. |
>= | 왼쪽 값이 오른쪽 값보다 크거나 같다. |
< | 왼쪽 값이 오른쪽 값보다 작다. |
<= | 왼쪽 값이 오른쪽 값보다 작거나 같다. |
예시
순서 1. 변수를 선언한다.
순서 2. 비교 연산자를 사용하여 결과를 반환한다.
name = "홍길동"
print(name == "홍길동")
print(name != "홍길동")
10 > 5
[실행결과]
True
False
True
문자열 비교 연산자
"a" > "b"
"a" > "가"
"A" < "a"
ord("A"), ord("a")
[실행결과]
False
True
True
(65, 97)
대문자와 소문자를 비교할 때는 아스키코드에 따라 비교한다.
아스키코드를 변환하는 함수인 ord( )를 사용하면 각 문자의 아스키코드를 알 수 있다.
논리 연산자
논리 연산자는 주어진 논리식을 연산하여, 참(True)과 거짓(False)을 결정한다.
연산자 | 설명 |
& (and) | 두 값이 True 이면 결과는 True, 나머지는 모두 False |
| (or) | 두 값이 모두 False 이면 False 나머진 모두 True |
^ | 두 값이 다를 경우 True 같으면 False |
not | 피연산자를 반대로 부정한다. (True->False, False->True) |
예시
순서 1. 각각의 변수를 선언한다.
순서 2. 주어진 논리식을 논리 연산자를 사용하여 결과를 반환한다.
age = 10
name = "홍길동"
논리식 1. 나이가 19세 이상이고 이름은 홍길동인가?
논리식 2. 나이가 19세 이상이거나 이름은 홍길동인가?
age >= 19 and name == "홍길동"
(age >= 19) & (name == "홍길동")
age >= 19 or name == "홍길동"
(age >= 19) | (name == "홍길동")
[실행결과]
False
False
True
True
조건 연산자 (삼항 연산자)
조건 연산자는 조건이 True이거나 False이냐에 따라 결과값을 반환한다.
'Value1 if 조건식 else Value2'
조건식이 True이면 Value1을 False이면 Value2를 반환한다.
예시
순서 1. 사용자로부터 이름(문자열)을 입력받기 - input( )
순서 2. 이름이 입력되었는지 여부를 출력한다.
순서 3. 이용해서 이름이 입력되었으면 이름을 출력, 입력되지 않았으면 "이름을 입력하세요."를 출력한다.
name = input("이름:")
print(bool(name))
print(name if name else '이름을 입력하세요.')
[실행결과]
이름이 입력된 경우 - True / 입력되지 않은 경우 - False
이름이 입력된 경우 - 입력한 이름을 출력 / 입력되지 않은 경우 - False
None
None은 아무 값도 없음을 나타내는 값을 말한다.
다른 언어에서는 주로 NULL을 사용한다.
'Back-End > Python' 카테고리의 다른 글
[Python] 문자열 형식화(formatting) (0) | 2022.09.17 |
---|---|
[Python] 문자열 인덱싱(Indexing) 과 슬라이싱(Slicing) (0) | 2022.09.16 |
[Python] 데이터 타입 (Data Type) - 문자형(String) (0) | 2022.09.16 |
[Python] 데이터 타입 (Data Type) - 숫자형 (numeric) (0) | 2022.09.15 |
[Python] 변수(Variable) 선언 및 대입 (2) | 2022.09.15 |