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

2017. 8. 2. 11:54·빅데이터 프로그래밍/Python
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
반응형

'빅데이터 프로그래밍 > Python' 카테고리의 다른 글

[Python] 08. 함수 다루기, 함수의 인자, 지역 변수와 전역 변수, 리턴값, 디버깅  (0) 2017.08.02
[Python] 07. 제어문 - 반복문(while, for문), for 문 실습  (0) 2017.08.02
[Python] 05. 시퀀스 자료형 리스트의 실습, 리스트 선언, 리스트 연결, 리스트 크기, 멤버 체크, 문자열 포맷팅, Tuple, Dictionary의 선언  (0) 2017.08.02
[Python] 04. 시퀀스, 자료형 문자열의 실습, 문자열 선언, 슬라이싱, 연결, 반복, 문자열의 크기, 멤버체크, 문자열 포맷팅  (0) 2017.08.02
[Python] 03. 컴파일, 파이썬 프로그램의 구조, 데이터 형(date type), 연산자(Operator), Library Reference  (0) 2017.08.02
'빅데이터 프로그래밍/Python' 카테고리의 다른 글
  • [Python] 08. 함수 다루기, 함수의 인자, 지역 변수와 전역 변수, 리턴값, 디버깅
  • [Python] 07. 제어문 - 반복문(while, for문), for 문 실습
  • [Python] 05. 시퀀스 자료형 리스트의 실습, 리스트 선언, 리스트 연결, 리스트 크기, 멤버 체크, 문자열 포맷팅, Tuple, Dictionary의 선언
  • [Python] 04. 시퀀스, 자료형 문자열의 실습, 문자열 선언, 슬라이싱, 연결, 반복, 문자열의 크기, 멤버체크, 문자열 포맷팅
밍글링글링
밍글링글링
mingling - 밍글링, 밍글밍글링. 코드와 어우러지다. IT/ 프로그래밍/소스
    반응형
    250x250
  • 밍글링글링
    mingling
    밍글링글링
  • 전체
    오늘
    어제
    • 밍글링글링 (407) N
      • Flutter (2)
      • 일상생활 (8)
        • 리뷰 (1)
        • 생활정보 (4)
        • 맛집 (0)
        • 여행 (0)
        • 모든정보 (3)
      • JAVA (126)
        • 개념 (6)
        • 예제 (115)
        • Exception (2)
      • C (1)
        • C (1)
        • C++ (0)
        • C# (0)
      • JS (29)
        • JavaScript (18)
        • JQuery (5)
        • AJax (0)
        • NODE.JS (6)
        • Angular.JS 2.0 (0)
      • WEB (87)
        • HTML (6)
        • CSS (61)
        • JSP (20)
        • JSTL (0)
      • FrameWork (8)
        • Spring (8)
        • BootStrap (0)
        • MyBATIS (0)
        • JUnit (0)
      • 외부 라이브러리 (5)
      • 공유 소스 관리 (5)
        • Git (5)
        • SVN (0)
      • 빅데이터 프로그래밍 (37)
        • Python (37)
        • R Programming (0)
      • DB (7)
        • ORACLE (0)
        • MySql (6)
      • Development Tools (7)
        • StarUML (0)
        • eXERD (0)
        • Eclipse (4)
      • SKILL (6)
        • Migration (0)
        • Security (6)
      • MicroSoft (0)
        • Excel (0)
        • Word (0)
      • Android (0)
      • Server (21)
        • Ubuntu (5)
        • Linux (15)
      • IOS (0)
      • XML (0)
      • 미디어 (0)
      • 공지사항 (3)
      • NETWORK (1)
      • 게임 (4)
        • 피파 (1)
        • 리니지M (0)
        • 배틀그라운드 (1)
        • 듀랑고 (2)
      • 세상 이슈 (6)
      • 일렉트론 (0)
      • 대회 소식 (4)
      • 업무 (2)
      • Express, Vue (6)
      • docker (11)
      • svelte (3)
      • 블록체인 (1)
      • IT (10) N
      • Rust (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    자바 객체 지향
    lang rust
    vue cli
    Node
    proxy pass
    vscode
    rust linux
    에디터 팁
    jsp include
    ssl 인증서 발급
    자바 생성자
    리눅스 설치
    docker
    css table
    프런트엔드
    vue 설치
    자바 배열
    러스트
    nginx ssl 적용
    VS Code 팁
    AI 코딩 에이전트
    자바 exception
    자바 클래스
    css list
    Rust lang
    Extension Bisect
    클론코딩
    jsp parameter
    css tb
    React Compiler
    mysql db
    css block
    자바 for문
    SSL 인증서
    gitlab 설치
    티스토리 자동화
    spring java
    servlet class
    svelte
    브라우저 자동화
    API 설계
    css float
    오류
    ubuntu
    java casting
    Java Array
    css perspective
    nginx ssl 설정
    css transition
    nginx
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
밍글링글링
[Python] 06. 제어문 - 분기문(if) - 다양한 if문, if문 실습, Template
상단으로

티스토리툴바