01. 제어문 - 분기문 if
- 조건에 따라 판단을 하여 코드를 실행합니다.
- 조건에 따라 분기를 할 수 있습니다.
if 조건식:
참일 경우 실행
else:
거짓일 경우 실행
- 중괄호 블럭안은 경계를 위해 들여쓰기를 2칸(2~4칸)정도 해야합니다.
- 가장 바깥쪽의 코드를 들여쓰기를 하지 않습니다.
- 콜론 다음 라인부터 시작하는 실행코드는 들여쓰기 간격이 모두 동일해야합니다.
저장 위치:
Eclipse Setting:
name: control
1. if문의 기본 형태
- 참일 경우만 실행하는 단순 if문
- 참과 거짓일 경우 각각 다르게 실행되는 if문
- 여러개의 if조건을 나열하고 해당하는 조건에 참인 if문을 실행하고 if문 전체를 종료합니다.
- if문은 if문을 포함할 수 있습니다.
- ||: OR 연산자, 조건중 하나라도 참이면 참 처리, '또는'의 의미.
예) if su % 2 == 0 or su % 3 == 0:
- &&: AND 연산자, 모든 조건을 만족해야 참으로 처리, '그리고'의 의미.
예) if su % 2 == 0 and su % 3 == 0:
2. if문의 다양한 사용예
[실행 화면]
▷ IfTest.py
-------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
age = 18
# 3항연산자 True if 조건 else False
vote = '투표 가능' if age >= 19 else '투표 불가능'
print(vote)
print('--------------------------------')
tot = 80
if tot >= 80:
print('합격')
print('상품 노트북')
print('--------------------------------')
su = 4
if su % 2 == 0:
print('짝수')
else:
print('홀수')
print('--------------------------------')
if su == 1:
print('January')
elif su == 2:
print('February')
elif su == 3:
print('March')
elif su == 4:
print('April')
else:
print('1~4를 입력해주세요.')
print('--------------------------------')
month = 5
res = '';
if month == 5:
res = 'May'
elif month == 6:
res = 'June'
elif month == 7:
res = 'July'
else:
res = '5 ~ 7월만 예약 가능합니다.'
print('예약: ' + str(month) + "(" + res + ")")
print('--------------------------------')
test = 85
if test >= 85:
print('채용 합격입니다.')
# 60점 이상인 인원을 85점 이상인지 재평가
if test >= 85:
print('-> 프로젝트 참여') # 85 ~
else:
print('-> 추가교육 실시') # 60 ~ 84
else:
print('채용 불합격입니다.')
print('--------------------------------')
score = 70
str1 = ''
if score >= 90:
str1 = 'A'
elif score >= 80 and score <= 89:
str1 = 'B'
elif score >= 70 and score <= 79:
str1 = 'C'
elif score >= 60 and score <= 69:
str1 = 'D'
else:
str1 = 'F' # ~ 59
print('등급: ' + str1)
print('--------------------------------')
month = 6
if (month == 6 or month == 7 or month == 8):
print('여름입니다.')
-------------------------------------------------------------------------------------
[실습 1]
하나의 수를 정의하고 2의 배수, 3의 배수, 4의 배수, 5의 배수인지
판단하는 프로램을 제작하세요.
- Hint: 4개의 if문이 필요함, 참일 경우만 처리하는 if 형태 사용.
[실행 화면]
정수: 10
2의 배수
5의 배수
정수: 12
2의 배수
3의 배수
4의 배수
정수: 15
3의 배수
5의 배수
정수: 120
2의 배수
3의 배수
4의 배수
5의 배수
▷ IfExam1.py
-------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
su =120
print("정수: " + str(su))
if su % 2 == 0:
print("2의 배수")
if su % 3 == 0:
print("3의 배수")
if su % 4 == 0:
print("4의 배수")
if su % 5 == 0:
print("5의 배수")
-------------------------------------------------------------------------------------
[실습 2]
등수별 상품을 출력하는 프로그램을 제작하세요.
- Hint: if ~ else if ~
- 기준
1등: 노트북
2등: 무한 복합 프린터
3등: 256 SSD
4등: 다음 기회에...
5등: 다음 기회에...
6등: 다음 기회에...
[실행 화면]
등수: 1 상품: 노트북
▷ IfExam2.py
- 필수 코드
rank = 1 # 등수
product = "" # 상품
-------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
'''
1등: 노트북
2등: 무한 복합 프린터
3등: 256 SSD
5등: 다음 기회에...
'''
rank = 1 # 등수
product = "" # 상품
if rank == 1:
product = "노트북"
elif rank == 2:
product = "무한 복합 프린터"
elif rank == 3:
product = "256 SSD"
else:
product = "다음 기회에..."
print("등수: " + str(rank) + " 상품: " + product )
-------------------------------------------------------------------------------------
[실습 3]
논리 연산자의 사용
하나의 수를 정의하고 '1의자리', '10의 자리', '100의 자리', '1000의 자리이상'인지
력하는 프로그램을 작성하세요.(음수 제외)
- Hint: if문 사용, 1의 자리 범위: 0 ~ 9까지, and 논리 연산자 사용
if 0 <= su and su <= 9:
또는
if su >=0 and su <= 9:
[실행 화면]
정수: 5
1의 자리
or
정수: 50
10의 자리
or
정수: 500
100의 자리
or
정수: 1000
1000의 자리 이상
or
정수: -1000
▷ IfExam3.py
- 필수 코드
str = "" # 결과 출력 문자열
su = 0
print("정수: " + str(su))
-------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
str1 = "" # 결과 출력 문자열
su = 10
print("정수: " + str(su))
if 0 <= su and su <= 9:
str1 = "1의 자리"
elif 10 <= su and su <= 99:
str1 = "10의 자리"
elif 100 <= su and su <= 999:
str1 = "100의 자리"
elif 1000 <= su:
str1 = "1000의 자리이상"
else:
str1 = "음수는 처리하지 않습니다."
print(str1);
-------------------------------------------------------------------------------------
[실습 4]
java, jsp, spring 성적중에 한 과목이라도 80점이 넘으면 합격처리하는 프로그램을 작성하세요.
- or: OR 연산자, 조건 중 하나라도 '참'이면 '참'처리
예) if su == 1 or su ==2;
[실행 화면]
결과: 통과 ← python: 50, mysql: 80, html: 60 일 경우
or
결과: 재심사 ← python: 50, mysql: 70, html5: 60 일 경우
▷ IfExam4.py
- 변수는 4개를 사용합니다.
- 하나의 if 문으로 해결할 수 있습니다.
- 필수 코드
python = 50
mysql = 80
html5 = 60
result = "" # 통과, 재심사
-------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
python = 50
mysql = 80
html5 = 60
result = "" # 통과, 재심사
if python >= 80 or mysql >= 80 or html5 >= 80:
result = "통과"
else:
result = "재심사";
print("결과: " + result)
-------------------------------------------------------------------------------------
[Upgrade 1] 한 과목이 80점이 넘어도 전체 평균이 60점이 안넘으면 불합격 처리하세요.
- Hint: if문안에 if문을 계속 사용 할 수 있습니다.
[실행 화면]
결과: 평균 점수 미달입니다. ← python: 40, mysql: 80, html5: 40 일 경우
or
or
▷ IfExam4_1.py
- 필수 코드
python = 79
mysql = 0
html5 = 79
result = "" # 통과, 재심사
tot = 0
avg = 0
print("결과: " + result)
-------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
python = 79
mysql = 0
html5 = 79
result = "" # 통과, 재심사
tot = 0
avg = 0
tot = python + mysql + html5
avg = tot / 3;
if avg >= 60:
if python >= 80 or mysql >= 80 or html5 >= 80:
result = "통과"
else:
result = "재심사"
else:
result = "평균 점수 미달입니다."
print("결과: " + result)
-------------------------------------------------------------------------------------
[Upgrade 2] 한 과목이라도 40점 미만(40점은 포함 안됨)이 발생하면 과락 처리하세요.
- Hint: if문안에 if문안에 if문을 계속 사용 할 수 있습니다.
[실행 화면]
결과: 과락이 발생했습니다. ← python: 30, mysql: 80, html5: 30 일 경우
or
결과: 평균 점수 미달입니다. ← python: 40, mysql: 80, html5: 40 일 경우
or
or
▷ IfExam4_2.py
-------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
python = 79
mysql = 0
html5 = 79
result = "" # 통과, 재심사
tot = 0
avg = 0
tot = python + mysql + html5
avg = tot / 3;
if python < 40 or mysql < 40 or html5 < 40:
result = "과락이 발생했습니다."
else:
if avg >= 60:
if python >= 80 or mysql >= 80 or html5 >= 80:
result = "통과"
else:
result = "재심사"
else:
result = "평균 점수 미달입니다."
print("결과: " + result)
-------------------------------------------------------------------------------------
3~5월: 지리산 노고단
6~8월: 함백산 만항제 하늘 숲공원
9~11월: 내장산 단풍
12~2월: 한계령 드라이브
- else if문을 사용하세요. 논리 연산자 and, or가 사용됩니다.
- 변수는 2개를 선언하세요.
- 필수 코드
[실행 화면]
▷ IfExam5.py
-------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
month = 3
str1 = "" # 여행지 출력
print("월: " + str(month))
if month >= 3 and month <= 5:
str1 = "지리산 노고단"
elif month >= 6 and month <= 8:
str1 = "함백산 만항재 하늘숲 공원"
elif month >= 9 and month <= 11:
str1 = "내장산 단풍"
elif month == 12 or month == 1 or month == 2:
str1 ="한계령 드라이브"
print(str1);
-------------------------------------------------------------------------------------
[실습 6] KOSA(Korea Software Industry Association) 기준 개발자 경력별
등급을 출력하는 프로그램을 제작하세요.
(2012년 폐지되었으나 많은 중/대기업은 여전히 등급을 적용하고 있음)
- 필수 코드
* 프리랜서일경우 보험 처리가 안되어 300만원 ~ 500만원 정도 높음.
[기준]
0 ~ 5년: 초급 기술자, 2000 ~
6 ~ 8년: 중급 기술자, 4000 ~
9 ~ 11년: 고급 기술자, 5000 ~
12년 이상: 특급 기술자, 6000 ~
[실행 화면]
or
▷ IfExam6.py
-------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
year = 9 # 경력
level = "" # 등급
pay = 0 # 급여
if year >= 0 and year <= 5:
level = "초급 기술자"
pay = 2000
elif year >= 6 and year <= 8:
level = "중급 기술자"
pay = 4000
elif year >= 9 and year <= 11:
level = "고급 기술자"
pay = 5000
elif year >= 12:
level = "특급 기술자"
pay = 6000
print("경력: " + str(year) + " 년")
print("등급: " + level)
print("급여: " + str(pay) + " ~ " + str(pay + 1200))
-------------------------------------------------------------------------------------
댓글