본문 바로가기

Python

6. Python 조건문

6. Python 조건문

(1) 조건구조의 기초

- 지금까지는 단순히 하나의 결과만을 만드는 소스코드를 작성해보았다. 이러한 코드들은 간단하고 누구나 이해하기 쉽지만 다양한 상황을 반영하지 못 한다는 단점이 있다. 예를 들어, 우리가 만든 입력 2개를 받아 덧셈계산을 하는 프로그램은 빼기나 곱하기 혹은 나누기를 하지 못한다. 이렇게 일방적인 프로그램의 흐름을 순차구조 알고리즘 이라고 한다.

(기본적인 순차구조 알고리즘)


   순차구조 알고리즘은 라면 끓이는 방법처럼 한 가지 방향을 가지고 순차적으로 단계가 진행되는 구조를 의미한다. 순차구조 알고리즘은 쉽게 작성할 수 있지만 조건에 따라 다른 처리를 못 한다는 단점이 있다. 이를 해결하기 위한 흐름이 바로 조건구조 알고리즘 이라고 한다.

(기본적인 조건구조 알고리즘)


   조건구조 알고리즘은 우산 챙기는 알고리즘에서 볼 수 있듯이 특정 조건에 따라 다른 일을 처리할 때 사용한다. 조건구조는 단어가 생소할 뿐이지 우리 일상생활 속에서 가장 많이 사용하는 알고리즘이다. "만약 비가 오면 우산을 가져가야지" 혹은 "내일이 쉬는 날이면 오늘 늦게 자야지" 등 우리가 항상 사용하고 익숙한 방식을 조건구조라고 하며 컴퓨터에게도 똑같이 적용할 수 있다.


(2) 조건문(if문) 형식

 - 조건구조를 컴퓨터에게 그대로 적용시킨 것이 바로 조건문(if문)이다. if 를 통해 컴퓨터는 조건을 물어보고 해야할 일을 결정할 수 있다.
 - if문의 구조는 다음과 같다.

 1

  if 조건 1:

 2

  (tab) 해야할 일1

 3

  elif 조건 2:

 4

  (tab) 해야할 일2

 5

  else :

 6

  (tab) 해야할 일 3

 - if문을 사용할 때에는 간단하게 "만약 ~~~ 라면~~~을, 아니면 ~~~을문장을 떠올리면 쉽게 구현할 수 있다. 

   

   if문은 기본적으로 if ~ elif ~ else 로 구성되어 있으며 elif와 else는 필요에 의해 사용하지 않을 수 있다. 컴퓨터는 항상 if의 조건 1을 본 다음 만족하지 않으면 elif의 조건 2로 넘어오고 , 조건 2도 만족하지 않으면 else로 넘어가게 된다.


(조건 구조의 기본적인 흐름)


   if문을 사용할 때에 가장 중요한 것은 조건을 설정하는 것이다. 위의 그림에서 볼 수 있듯이 컴퓨터는 순차적으로 조건을 확인하고 해야할 일을 처리한다. 따라서 조건을 단계별로 명확하게 설정하는 것이 가장 중요하다고 할 수 있다.
   또한 if문에서는 처음으로 들여쓰기가 필요하다. 조건을 쓴 다음 조건에 해당하는 일을 명령하기 위해서는 Tab 혹은 스페이스바를 사용하여 들여쓰기를 해야한다. 파이썬은 들여쓰기를 통해 조건문 속 내용과 일반적인 내용을 구분하기 때문에 제대로 구분하지 않으면 오류가 생길 수 있다. 

 

 - 조건을 설정할 때에는 항상 연산자를 활용해야 한다. 컴퓨터에 사용할 수 있는 연산자 종류에는 크게 2가지가 있다.

    1. 비교연산자

      - 비교연산자는 수학에서 자주 사용하는 부등호를 사용하며, 총 6개의 연산자가 있다.

 부등호

의미 

a < b

a가 b보다 작다

a <= b

a가 b보다 작거나 같다 

a > b

a가 b보다 크다 

a >= b

a가 b보다 크거나 같다 

a == b

a와 b가 같다 

a != b

a와 b가  서로 다르다

      - 대부분의 조건은 위의 부등호를 사용하여 만들 수 있다. (Ex. a가 0이라면 : a == 0 / a가 b보다 크다면 : a < b)

      - 비교연산자를 사용할 때 중요한 것은 비교하는 두 데이터는 항상 타입이 일치해야 한다는 것이다. 타입이 일치하지 않으면 서로 비교할 수 없게 되어 오류가 발생하게 된다.


    2. 논리연산자

      - 논리연산자는 참과 거짓으로 하는 계산을 의미하며, 보통 조건과 조건을 연결해주는 일종의 접속사 혹은 다리 역할을 한다. 

      - 논리연산자는 총 3가지 존재하며 각각 쓰임새가 다르다.

논리연산 

의미 

a and b

조건 a가 참 그리고 조건 b가 참일 때 

a or b

조건 a가 참 또는 조건 b가 참일 때 

not a

조건 a가 거짓일 때 

      - 논리연산자는 조건과 조건 사이에 주로 위치하며 괄호를 사용하여 우선순위를 직접 정해줄 수도 있다.

   

(3) 조건문(if문) 활용

 - 지금까지 조건문에 대해 대략적으로 알아보았다. 지금부터는 실제 코드를 직접 작성하면서 그 기능을 익혀보자.


< 연습문제 1>

  숫자를 입력받고 양수인지 0인지 음수인지 구분하는 프로그램을 작성해보자.


 [입력] 정수 1개가 입력된다.

 [출력] 양수이면 "양수"를, 음수이면 "음수"를, 0이면 "0"을 출력한다.


 [입력예시] 5

 [출력예시] 양수


<연습문제 2>

  숫자를 입력받으면 홀수인지 짝수인지 구분하는 프로그램을 작성해보자.


 [입력] 정수 1개가 입력된다.

 [출력] 홀수면 "홀수"를, 짝수면 "짝수"를 출력한다.


 [입력예시] 6

 [출력예시] 짝수


<연습문제 3>

  휴대폰을 바꾸고 싶어진 왕고는 부모님과 내기를 하였다. 왕고가 이번 중간고사에서 수학과 영어 모두 90점이 넘는다면 핸드폰을 바꿔주는 것이다. 열심히 공부하는 왕고를 대신하여 왕고가 핸드폰을 바꿀 수 있는지 확인하는 프로그램을 작성해보자.


 [입력] 정수 2개가 입력된다.

 [출력] 왕고가 휴대폰을 바꿀 수 있다면 "yes"를, 아니라면 "no"를 출력한다.


 [입력예시] 90 80

 [출력예시] yes



- 연습문제는 if문의 구조부터 논리연산까지 연습해볼 수 있는 문제로 준비하였다. 한 문제씩 풀어보면서 if문 사용법에 익숙해지자.

  바로 문제를 풀기 힘들다면 아래 코드를 참고하여 빈칸을 채우면서 감을 잡아보자.


 <연습문제 1>

 in = int(input())

 

 if  __________ :

     print("양수")

 elif __________ :

     print("음수")

 else :

     print("0")


 <연습문제 2>

 in = int(input())


 _______________ :

     print("짝수")

 ______ :

     print("홀수")


<연습문제 3> 

 math, en = int(input().split())


 if ________________________ :

     print("yes")

 else :

     print("no") 


'Python' 카테고리의 다른 글

7. Python 자료형(심화)  (0) 2018.07.16
5. Python 입력 받기  (0) 2018.04.12
4. Python 변수 사용하기  (0) 2018.04.12
3. Python 출력하기  (0) 2018.04.11
2. Python으로 계산하기  (0) 2018.04.11