[파이썬] 제어문: if 조건문
[ 조건문 if ]
01. 구조
if 조건문: 주어진 조건이 true(참)일 경우에만 명령을 선택적으로 실행하고 싶을 때 사용.
if 조건1: 조건1이 참 일때의 실행문 elif 조건2: 조건2가 참 일때의 실행문 else: 실행문 |
cf. : 아래줄은 반드시 들여쓰기를 해야한다. (빈칸 2개, 혹은 4개)
02. 예시: 윤년 계산 조건 알아보기
*윤년에 해당하는 조건 알아보기
1) 연도가 4로 나누어 떨어지면 윤년이다. (ex. 2008, 2012, 2016, 2020,,,)
2) 그 중에서(4로 나누어 떨어지는 연도 중) 100으로 나누어 떨어지면 평년이다. (ex. 2100년, 2200년, 2300년, 2500년,,,)
3) 그 중에서(4, 100으로 나누어 떨어지는 연도 중) 400으로 나누어 떨어지면 윤년이다. (ex. 1600년, 2000년, 2400년,,,)
*코드문으로 조건을 번역하기,
1) (연도) % 4 == 0인가? 아닌가?
2) 만약 1항이 네(Yes)라면, (연도) % 100 ==0인가? 아닌가?
3) 만약 2항이 네(Yes)라면, (연도) % 400 ==0인가? 아닌가?
* 윤년이 되는 2가지의 경우의 수
(연도) | A조건. % 4 == 0 |
B조건. % 100 == 0 |
C조건. % 400 == 0 |
결과 |
2019 | No (3) | 평년 | ||
2020 | Yes (0) | No (20) | 윤년 | |
2100 | Yes (0) | Yes (0) | No (100) | 평년 |
2400 | Yes (0) | Yes (0) | Yes (0) | 윤년 |
위 표를 보면 윤년이 되는 경우의 수는 2가지가 나온다
[1] A조건'만' 만족하거나
[2] A,B,C 세 조건 '모두' 만족하거나
03. IF 함수를 활용하여 윤년 코드문 작성하기
*IF함수 - 기본코드
코드셀 | 해석 |
year = input('연도를 입력해 주세요.') | year에 '연도를 입력해 주세요' 구문을 대입 |
year = int(year) | year 코드를 숫자화 |
if year % 4 == 0: | 만약, 입력한 year를 4로 나누었을 때 나머지가 0이면: |
print('윤년입니다.') | '윤년입니다.'를 출력 → TRUE |
else: | 그렇지 않으면(4로 나누었을 때 나머지가 0이 아니면): |
print('평년입니다.') | '평년입니다.'를 출력 → FALSE |
2023을 넣어보면
이제 모든 3조건을 모두 적용시켜보자
year = input('연도를 입력해 주세요.')
year = int(year)
if year % 4 == 0:
if year % 100 == 0:
if year % 400 == 0:
print('윤년입니다.')
else:
print('평년입니다.')
else:
print('윤년입니다.')
else:
print('평년입니다.')
* != 기호 활용
==의 true값, false값과 정반대로 평가하는 기호이다.
if year % 4 == 0: year를 4로 나누었을 때 나머지가 0이면 다음 블록 진행
if year % 4 != 0: year를 4로 나누었을 때 나머지가 0이 아니면 다음 블록 진행
...
if year % 4 != 0:
print('평년입니다.')
else:
if year % 100 != 0:
print('윤년입니다.')
else:
if year % 400 != 0:
print('평년입니다.')
else:
print('윤년입니다.')
코드가 사이에 껴있지 않아서 거슬러 올라가지 않고 해석하기에 용이하다
*ELIF함수
: else와 if 함수를 합친 함수이다
year = input('연도를 입력해 주세요.')
year = int(year)
if year % 4 != 0:
print('평년입니다.')
elif year % 100 != 0:
print('윤년입니다.')
elif year % 400 != 0:
print('평년입니다.')
else:
print('윤년입니다.')
블록을 3단계, 즉 12칸까지 들여쓰기하던 것에서 1단계 들여쓰기로 간소화했다.
출처: 패스트 캠퍼스 - 한 번에 끝내는 데이터 분석 초격차 패키지 Online: Python, 작심삼일 파이썬