Boolean은 불린 또는 불리언이 라는 발음으로 부른다. 프로그래밍에서는 짧게 Bool이라고 쓰기도 한다. Boolean Algebra를 불 대수, Boolean Operator 를 불 연산자라고 부른다. 불 형 데이터는 True와 False 중 하나의 값만을 가질 수 있다. 숫자 형 데이터는 무수히 많은 다른 값을 임의로 저장할 수 있었고 문자열 형 데이터도 마찬가지로 무수히 다양한 임의의 문자열을 저장할 수 있었습니다.
불형 데이터 만들기 : 비교 연산자
- 비교 연산자를 이용해서 불 값을 생성할 수 있다. 파이썬에는 6개의 비교 연산자가 있다.
- == : 같다
- : 크다
- != : 다르다
- < : 작다
- <= : 작거나 같다
- = 크거나 같다
- = 는 할당 연산자 이다.
- = 할당 연산자 왼쪽에 있는 것을 오른쪽에 할당(저장)하라는 의미.
print(10 == 100)
result = (10 == 100)
print(result)
==>
False
False
print(10 != 100)
==>
True
print(10 >= 100)
print(10 <= 100)
==>
False
True
파이썬은 문자열을 가지고 비교 연산을 수행할 수 있다.
print('고양이' == '나무')
print('고양이' != '나무')
==>
False
True
print('고양이'>'나무')
print('고양이'<'나무')
==>
False
True
위 코드셀에서 '고양이'<'나무' 의 연산결과가 True 인 이뉴는 문자열에 비교 연산자를 적용하면 가나다 순으로 크기를 따져준다.
<참고>
아래 코드와 같이 변수의 범위를 평가할 수 있다.
x = 3
print(0 <= x < 5)
x = 10
print(0 <= x <5)
==>
True
False
x = 3
print(0<= x and x<5)
x = 10
print(0 <= x and x<5)
==>
True
False
불 연산하기 : 논리 연산자
- 불 형 데이터는 비교 연산자를 적용하여 생성될 수 있으며 아래 코드와 같이 직접 불 값을 변수에 할당해서 불 형 데이터를 생성할 수 있다.
b = True
print(b)
c = False
print(c)
==>
True
False
- 그리고 불 형 데이터끼리는 논리 연산자를 사용할 수 있다. 파이썬에는 'not',' and', 'or'의 세개의 논리 연산자가 있다.
- not : 아니다 - 불 데이터를 반대 값으로 뒤집는다.
- and : 그리고 - 피연산자가 두 개가 모두 참(True)일 때만 참(True)을 반환
- or : 또는 - 피연산자 두 개 중 하나라도 참(True)이면 참(True)을 반환
<참고>
단항 연산자와 이항 연산자
not 연산자
- not 연산자는 단항 연산자로 불 형 데이터의 값이 참이면 거짓을 반환하고 불 형 데이터의 값이 거짓이면 참을 반환한다.
a = True
print(a)
print(not a)
==>
True
False
x = 3
b = (0 <= x < 10)
print(b)
print(not b)
==>
True
False
논리 연산자의 활용
- 컴퓨터 프로그래밍에서 논리 연산자는 매우 중요한 개념이다. 컴퓨터는 상황에 따라 해야할 일이 달라진다고 말할 수 있다. 그렇게 동작하도록 프로그램을 해야한다. 그렇다면 프로그램 코드는 상황을 인지, 판단할 때 논리를 따져야 할 것이다. 예를 들어 컴퓨터가 보일러를 제어 한다고 가정해 보겠다. 측정 온도 'measurement_temp'가 사전에 설정된 기준 온도 criteria_temp값 미만으로 내려가면 보일러를 켜야 할 것이다. 사전에 설정된 온도가 25도 라고 가정하고 측정된 온도 값이 15도라면 보일러를 가동할 조건이만족되는지 만족 되지 않는지, 다시 말해 보일러를 가동할 조건이 참인지 거짓인지 판단 해야 할것이다.
criteria_temp = 20
measurement_temp = 15
condition = measurement_temp < criteria_temp
print(condition)
==>
True
- and 연산자
- and 연산자는 이항 연산자로 and 연산자의 왼쪽에 기술된 조건과 오른쪽에 기술된 조건 둘 다 만족할 때 참(true) 반환한다.
- or 연산자
- or 연산자는 이항 연산자로 or 연산자의 왼쪽에 표현된 조건이 참이거나 오른쪽에 표현된 조건이 참이거나 즉 두 조건 중에 하나라도 참이면 참(True)를 반환한다. 두 조건 모두 거짓 일때만 거짓 을 반환한다.
if 조건문이란
- if 문은 조건에 따라 실행할 코드를 나누는데 사용된다.
if(condition ==True):
#참이면 여기에 있는 코드 실행
pass
else:
#거짓이면 여기에 있는 코드 실행
pass
조건에 따라 실행될 코드로 이동(점프)하는 것을 조건 분기라고 한다.
x = 100 print('짝수' if x % 2 ==0 else '홀수') x = 99 print('짝수' if x % 2 ==0 else '홀수') ==> 짝수 홀수
if True: print('조건이 참이네') else: print('조건이 거짓이네') ==> 조건이 참이네
condition = True if(condition): print('조건이 참이네') else: print('조건이 거짓이네') print('-'*32 + '구분선' +'-'*32) condition = False if (condition): print('조건이 참이네') else: print('조건이 거짓이네') ==> 조건이 참이네 --------------------------------구분선-------------------------------- 조건이 거짓이네
if(조건_표현)에서 소괄호를 생략해도 된다.
a = 1
b = 2
print(a>b)
if a>b:
print('a>b')
else:
print('이 조건(a>b)이 거짓이네')
==>
False
이 조건(a>b)이 거짓이네
날짜/시간 활용하기
- 시간을 판단 기준으로 삼아 오전이면 어떤 동작을 하고 오후면 또 다른 동작을 하도록 하는 코드를 작성하겠다.
import datetime
now = datetime.datetime.now()
print(now)
==>
2023-06-28 06:38:43.215796
- 위 코드셀의 1번 줄은 날짜와 시간 관련 기능을 수행할 수 있는 datetime 모듈을 가지고 오라는 의미이다.
- 위에서 살펴본 'datetime.datetime.now()'함수를 이용하여 시간 정보를 구한 다음 12시 이전과 이후 즉 오전일때와 오후 일 때 각기 다른 일을 하도록 코드를 작성해 보겠다.
import datetime
now = datetime.datetime.now()
if now.hour <12:
print('현재 시간은 {}시 {}분입니다. 아침을 먹고나서 작업 A를 합니다.'.format(now.hour, now.minute))
if now.hour >=12:
print('현재 시간은 {}시 {}분입니다. 점심을 먹고나서 작업 A를 합니다.'.format(now.hour, now.minute))
==>
현재 시간은 6시 44분입니다. 아침을 먹고나서 작업 A를 합니다.
홀수 짝수 구분하기
s_number = input('임의 정수를 입력하세요 : ')
i_num = int(s_number)
if i_num % 2 ==0:
print('짝수')
else:
print('홀수')
==>
임의 정수를 입력하세요 : 2134
짝수
- 다음 중 어떤 코드가 잘 만든 코드일까?
-
- 계산의 정확성
- 실행(계산)속도
- 소스코드의 양
-
- 그리고 좋은 코드인지 아닌지 판단하는 기준이 될만한 사항으로 무엇을 고려해야 할까?
-
- 소스 코드의 가독성
-
- 위에서 1,2,3,4번호를 붙인 것은 잘 짠 코드인지를 판단하는 사항의 중요도 순은 아니다. 개인적으로 1순위로 중요하게 생각하는 것은 소스 코드의 가독성과 실행(계산)속도 이다. 계산의 정확성? 이 사항은 당연히 기본이다. 적성된 코드가 해석하기 난해 하다면 유지 보수 및 개선에 어려움이 있을 것이다. 같은 동작을 해도 빨리 해내야 하는 것이 컴퓨터 프로그램의 성능 지표가 된다.
'빅데이터 분석가 양성과정 > Python' 카테고리의 다른 글
Ch04-1 반복문 / 리스트와 반복문 (0) | 2024.07.04 |
---|---|
Ch 03-2 조건문 / if ~else 와 elif 구문 (0) | 2024.07.04 |
Ch02-4 자료형 / 숫자와 문자열의 다양한 기능 (0) | 2024.07.04 |
Ch02-3 자료형 / 변수와 입력 (0) | 2024.07.04 |
Ch02-2 자료형 / 연산자 (0) | 2024.07.04 |