본문 바로가기

Data Scientist

파이썬(불 자료형과 if 조건문)

반응형

Boolean

Boolean은 불린 또는 불리언이라는 발음으로 부르며 짧게 Bool '불'이라고 많이 표기한다.

불은 오직 True & False 값을 가진다. 

 

♧ 비교 연산자

연산자 설명 연산자 설명
== 같다 > 크다
!= 다르다 <= 작거나 같다
< 작다 >= 크거나 같다

숫자는 당연히 적용되며, 문자열에도 적용할 수 있는데, 가나다라 순으로 정렬되기 때문에 앞쪽 순서일수록 작은 값을 갖게 된다. 

 불 연산하기: 논리 연산자

연산자 의미 설명
not 아니다 불을 반대로 전환
and 그리고 피연산자 두 개가 모두 참일 때 True, 그 외는 모두 False를 출력
or 또는 피연산자 두 개 중에 하나만 참이라도 True를 출력, 두 개가 모두 거짓일 때만 False를 출력

if 조건문

조건에 따라 코드를 실행하거나, 실행하지 않게 만들고 싶을 때 사용하는 구문. 이는 코드의 실행 흐름을 변경한다는 뜻이다. 이렇게 조건을 기반으로 실행의 흐름을 변경하는 것을 조건 분기라고 부른다.

 

# 짝수와 홀수 구분하기 1
number = input('정수 입력> ')

#마지막 자리 숫자 추출
last_character = number[-1]

#숫자로 변환하기
last_number = int(last_character)

#짝수 확인
if last_number == 0 \
or last_number == 2 \
or last_number == 4 \
or last_number == 6 \
or last_number == 8:
    print('짝수')
    
#홀수 확인
if last_number == 1 \
or last_number == 3 \
or last_number == 5 \
or last_number == 7 \
or last_number == 9:
    print('홀수')
# 짝수와 홀수 구분하기 2
number = input('정수입력> ')
last_character = number[-1]

#짝수조건
if last_character in '02468':
    print('짝수')

#홀수조건
if last_character in '13579':
    print('홀수')
# 짝수와 홀수 구분하기 3
number = input('정수 입력> ')
number = int(number)

if number % 2 ==0:
    print('짝수')
else:
    print('홀수')

 

 날짜 / 시간 활용하기

#날짜/시간과 관련된 기능을 가져온다.
import datetime

#현재 날짜/시간을 구한다.
now = datetime.datetime.now()

# 출력
print(now.year, '년')
print(now.month, '월')
print(now.day, '일')
print(now.hour, '시')
print(now.minute, '분')
print(now.second, '초')

# 한 줄로 출력
print('{}년 {}월 {}일 {}시 {}분 {}초'.format(
    now.year,
    now.month,
    now.day,
    now.hour,
    now.minute,
    now.second
))

# 오전/오후 구분
if now.hour < 12:
    print('현재 시각은 {}시로 오전입니다!'.format(now.hour))
if now.hour >=12:
    print('현재 시각은 {}시로 오후입니다!'.format(now.hour))
    
# 사계절 구분
if 3 <= now.month <= 5:
    print('이번 달은 {}월로 봄입니다!'.format(now.month))
    
elif 6 <= now.month <= 8:
    print('이번 달은 {]월로 여름입니다!'.format(now.month))

elif 9 <= now.month <= 11:
    print('이번 달은 {}월로 가을입니다!'.format(now.month))

elif now.month ==12 or 1<= now.month <= 2:
    print('이번 달은 {}월로 겨울입니다!'.format(now.month))

if 조건문의 매개변수에 불이 아닌 다른 값이 올 때는 자동으로 이를 불로 변환해서 처리한다. 

<if 조건문 뒤에 보통 불이 오는 것이 사전 지식이지만, 이런 내용을 알아야 하는 코드는 최근 지양하고 있으나 현재도 많이 사용되므로 알고 있는 것이 좋다.>

 

False로 변환되는 값: None, 0, 0.0, 빈 컨테이너(빈 문자열, 빈 바이트열, 빈 리스트, 빈 튜플, 빈 딕셔너리 등)

True로 변환되는 값: False로 변환되는 값 이외 모두 해당

 pass 키워드

프로그래밍의 전체 골격을 잡아 놓고 내부에서 처리할 내용은 나중에 만들겠다는 의도로 사용. 

 raise 키워드를 사용해 오류를 강제로 일으켜 미구현 상태를 표현

 

 연습 문제

if 하위의 조건문(들여쓰기가 된 if)을 만족하는 것은 'and'라고 생각하면 해석하기 편하다. 

가장 왼쪽의 경우 x가 4보다 크고 y가 2보다 크다면 x와 y의 곱을 출력해라 인데 x가 4보다 크지 않으므로 두 변수의 합이 출력되는 것이다. 

 

가장 오른쪽의 경우 x가 4보다 크고 y가 2보다 커야(y>=2가 아님)하지만 해당되지 않기 때문에 아무 내용도 출력되지 않는다. 상위의 if조건문을 만족하지만 하위의 조건문을 만족하지 않으면 아무 것도 출력되지 않는다. 만약 else로 해당되지 않을 경우의 조건을 준다면 출력된다.

# 중첩 조건문에 논리 연산자를 적용해 하나의 if 조건문으로만들어보자

x=15
# Question)
if x > 10:
    if x < 20:
        #x가 10보다 크고 20보다 작다면?
        print('조건에 맞습니다')
  
  
# Answer1  
if 10<x<20:
    print('조건에 맞습니다')
    
# Answer2
if x>10 and x<20:
    print('조건에 맞습니다')

 

 

 

😁

출처:

혼자공부하는파이썬(윤인성) https://www.youtube.com/watch?v=ZiFsfy1Ys9A&list=PLBXuLgInP-5kr0PclHz1ubNZgESmliuB7&index=19

 

반응형