본문 바로가기
파이썬

해커맨 파이썬 강의 14강_ 조건문이란 무엇인가

by 비원(Be one) 2019. 11. 3.
반응형

이번 강에서 다룰 주제는 조건문입니다.

조건문을 배우시면 프로그램의 퀄리티가 월등하게 높아질 겁니다.


1. 조건문이란 무엇인가

조건문(conditional statement)이란 조건의 참 거짓에 따라 결과를 달라지도록 하는 함수입니다.

 

인생은 선택의 연속이라고 합니다.

저녁으로 치킨을 먹을까 피자를 먹을까 혹은 콜라를 마실까 사이다를 마실까 같은 사소한 선택으로 인생은 달라질 수 있습니다.

 

이것은 프로그래밍에서도 마찬가지입니다.

 

짜장면(5000)과 짬뽕(6000), 탕수육(7000) 중 하나를 골라 가격을 출력하는 프로그램을 만든다고 가정합시다.

여기서 선택할 수 있는 메뉴는 3개입니다.

이때 어떤 메뉴를 선택하냐에 따라 출력되는 가격이 달라져야 할겁니다.

조건문은 위와 같이 선택을 해야 할 때 사용되며, 어떤 선택을 하냐에 따라 결과값이 달라질 수 있습니다.

 

파이썬에서의 조건문은 if 함수가 있습니다.

 

 

2. if 함수

if 함수는 if(만약)의 뜻에 맞게 만약 조건이 참이면 실행되도록 하는 역할을 하는 함수입니다.

 

if 함수의 구조는 다음과 같습니다.

if 함수의 구조

if 조건 :
    실행되는 코드

조건이 참이면 코드를 실행하고, 거짓이면 실행하지 않고 넘어갑니다.

여기서 중요한 것이 두가지가 있는데

조건 뒤에 콜론(:)을 써야한다는 것과, if 함수안에 들어가는 코드들은 모두 들여쓰기를 해야 한다는 것입니다.

 

C언어를 배우신 분들은 조건문을 할 때 { }를 써야 한다고 알고 있을 겁니다.

C언어를 안 배우신 분들은 아래 강의를 참고하세요.

세이버의 C언어 강의 11강_조건문(if 함수) : https://poci.tistory.com/13

 

세이버의 C언어 강의 11강_조건문(if 함수)

여러분 안녕하세요. 세이버입니다. 이번 강에서 다룰 주제는 조건문입니다. 조건문을 배우시면 이제 어느 정도 퀄리티 있는 프로그램 코드를 작성하실 수 있으실 겁니다. 그럼 강의 시작합니다. 1. 조건문이란 무..

poci.tistory.com

하지만 파이썬에서는 { }를 사용하지 않고 들여쓰기로 함수의 영역을 구분하기 때문에 꼭 들여쓰기를 하셔야 합니다.

 

실습을 해보겠습니다.

 

5보다 큰 수를 입력하면 조건 num>5가 참이므로 print 함수가 실행됩니다.

5보다 작은 수를 입력하면 조건이 거짓이 되므로 print 함수가 실행되지 않아 출력값이 없게 될겁니다.

 

그러면 5보다 작은 수를 입력했을 때 "입력한 수는 5보다 작습니다."를 출력하려면 어떻게 해야 할까요?

 

이렇게 조건문 밑에다가 print 함수를 추가하면 5보다 작은 수를 입력했을 때 원하던 대로 출력이 됩니다.

 

그러나 이렇게 5보다 큰 수를 입력하면 if 함수도 같이 실행되어 출력이 이상하게 나옵니다.

 

러면 어떻게 해야 할까요?

해답 중 하나는 if 함수를 하나 더 씀으로써 조건을 추가하는 것입니다.

 

이렇게 하시면 num값이 5미만일 경우 첫번째 if 함수의 조건은 거짓으므로 실행되지 않고, 두번째 if 함수의 조건은 참이므로 실행이 됩니다.

 

이런 식으로 해도 문제는 없지만, 이거보다 간단하고 대중적인 방법이 있습니다.

 

3. else 함수

이번 장에서는 if 함수의 짝꿍 else 함수를 배워보겠습니다.

else 함수는 if 함수와 함께 쓰이며 2장에서의 if 함수의 문제점(조건이 아닐 경우의 처리법)도 해결할 수 있습니다.

else 함수는 if 함수의 조건이 거짓인 경우 수행되는 함수입니다.

 

else 함수의 구조는 다음과 같습니다.

else 함수의 구조

else :
    실행할 코드

 

else 함수는 if 함수와는 다르게 조건이 없습니다.

그 이유는 if 함수의 조건이 거짓이라면 무조건 else 함수의 영역으로 넘어가기 때문에 조건을 쓸 필요가 없는 것입니다.

또한, if 함수의 조건 외에 다른 조건이 필요 없다면 사용하지 않아도 됩니다.

그리고 if 함수처럼 들여쓰기로 영역을 구분하니까 들여쓰기를 꼭 해야 합니다.

 

실습으로 넘어가보겠습니다.

 

이 코드는 2장 마지막에 나온 코드와 같은 역할을 합니다.

사용자가 5 이상의 수를 입력하면 if 함수의 조건이 참이므로 if 함수 영역의 코드가 실행되고,

사용자가 5 미만의 수를 입력하면 if 함수의 조건이 거짓이므로 else 함수 영역의 코드가 실행됩니다.

 

물론 2장의 코드와 같이 쓰셔도 무방합니다만, 지금 현재 가장 대중적이게 사용되는 방법이 else 함수를 사용하는 방법이기에 이 방법을 사용하시는 것을 권장합니다.

 

그럼 이제 if 함수는 다 배운 것일까요?

안타깝게도 아직 문제점이 하나 남아있습니다.

조건이 2개 이상이 필요할 때는 어떻게 해야 할까요?

 

예를 들어 50이상의 수를 입력했을 때는 '50 이상을 입력하셨습니다.'를,

30 이상 50 미만의 수를 입력했을 때는 '30 이상 50 미만을 입력하셨습니다.'를,

30 미만의 수를 입력했을 때는 '30 미만을 입력하셨습니다.'를 출력한다고 하면 어떻게 할까요?

 

if 함수를 여러 개 사용하면 될까요?

 

이렇게 하셔도 프로그램은 잘 동작합니다만, 이것보다 더 대중적이고 간단한 방법이 있으니 소개해드리겠습니다.

 

4. elif 함수

elif 함수는 if 함수, else 함수와 함께 쓰이는 함수로 조건이 여러 개 필요할 때 사용되는 함수입니다.

if, elif, else 함수끼리 한 세트입니다.

 

elif 함수의 구조는 다음과 같습니다.

elif 함수의 구조

elif 조건 :
    실행할 코드

 

if 함수와 구조가 같지만 조건에서 차이가 있습니다. elif 함수의 조건은 if 함수의 조건과 달라야 합니다.

 

또한, 헷갈리지 마셔야 하는 것 중 하나로 if 함수의 조건이 거짓인 경우 elif 함수로 넘어가고, elif 함수의 조건도 거짓인 경우 else 함수로 넘어가게 됩니다.

, 실행 순서가 if -> elif -> else 인 것을 기억하셔야 합니다.

 

elif 함수 역시 if 함수, else 함수와 마찬가지로 들여쓰기를 해야 합니다.

 

실습으로 알아보겠습니다.

 

3장에서의

[50이상의 수를 입력했을 때는 '50 이상을 입력하셨습니다.'를,

30 이상 50 미만의 수를 입력했을 때는 '30 이상 50 미만을 입력하셨습니다.'를,

30 미만의 수를 입력했을 때는 '30 미만을 입력하셨습니다.'를 출력한다] 를 else if 함수를 가지고 구현할 수 있습니다.

 

훨씬 깔끔해 보이지 않나요?

if 함수의 조건이 거짓이라면 elif 함수로 넘어가 조건을 확인하고, elif 함수도 거짓이라면 else 함수로 넘어가는 구조입니다.

 

여기서 한 가지 짚고 넘어갈 것은 elif함수는 1개가 아니라 여러 개를 사용하셔도 된다는 것입니다.

 

이렇게 elif 함수를 두 개 사용해도 무방합니다.

하지만 if 함수와 else 함수는 무조건 1개만 사용해야 합니다. (if else가 세트인 경우)


정리
- 조건문 : 조건의 참 거짓에 따라 수행을 달리하는 역할을 하는 함수
- if 함수 : 가장 기본적인 조건문, 조건이 참이면 구역의 코드 실행
- else 함수 : if 함수의 조건이 거짓인 경우 실행되는 함수, 사용하지 않아도 무방
- elif 함수 : if 함수의 조건이 거짓인 경우 실행되는 함수, 여러 개를 사용해도 무방
- 실행 순서 : if -> elif -> else

강의가 유익하셨거나 마음에 드셨으면 구독과 좋아요, 댓글 부탁드립니다.

궁금하신 점이나 질문은 댓글 남겨주시기 바랍니다.

 

 

반응형