빅데이터 프로그래밍/Python

[Python] 06. 제어문 - 분기문(if) - 다양한 if문, if문 실습, Template

밍글링글링 2017. 8. 2.
728x90

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문의 다양한 사용예

[실행 화면]

투표 불가능
--------------------------------
합격
상품 노트북
--------------------------------
짝수
--------------------------------
April
--------------------------------
예약: 5(May)
--------------------------------
채용 합격입니다.
-> 프로젝트 참여
--------------------------------
등급: C
--------------------------------
여름입니다.
▷ 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

결과: 통과     ← python: 50, mysql: 80, html5: 60 일 경우

or

결과: 재심사     ← python: 50, mysql: 70, html5: 60 일 경우
▷ 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

결과: 통과     ← python: 50, mysql: 80, html5: 60 일 경우

or

결과: 재심사     ← python: 50, mysql: 70, html5: 60 일 경우
▷ 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)


-------------------------------------------------------------------------------------
 
[실습 5] 월을 정수로 선언한 후 관련 문자열을 출력하는 프로그램을 작성하세요. 
- 기준 자료
  3~5월: 지리산 노고단
  6~8월: 함백산 만항제 하늘 숲공원
  9~11월: 내장산 단풍 
  12~2월: 한계령 드라이브
- else if문을 사용하세요. 논리 연산자 and, or가 사용됩니다.
- 변수는 2개를 선언하세요.
- 필수 코드

   month = 1
   str1 = "" # 여행지 출력
   print("월: " + str(month))

 

[실행 화면] 

월: 8
함백산 만항제 하늘 숲공원
 
▷ 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년 폐지되었으나 많은 중/대기업은 여전히 등급을 적용하고 있음)
- 필수 코드

# -*- coding: utf-8 -*-
year = 10  # 경력
level = ""  # 등급
pay = 0    # 급여
print("경력: " + str(year) + " 년")
print("등급: " + level)
print("급여: " + str(pay) + " ~ " + str(pay + 1000))
 

* 프리랜서일경우 보험 처리가 안되어 300만원 ~ 500만원 정도 높음.
[기준]
0 ~ 5년: 초급 기술자, 2000 ~
6 ~ 8년: 중급 기술자, 4000 ~
9 ~ 11년: 고급 기술자, 5000 ~
12년 이상: 특급 기술자, 6000 ~

 

[실행 화면]

경력: 0 년
등급: 초급 기술자
급여: 2000 ~ 3200 ← 높은 연봉은 기준 년봉에서 1200 더함, 변수와 문자열의 연결

or

경력: 6 년
등급: 중급 기술자
급여: 4000 ~ 5200 ← 높은 연봉은 기준 년봉에서 1200 더함, 변수와 문자열의 연결
▷ 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))


-------------------------------------------------------------------------------------
 

728x90

댓글