4.이럴땐 이렇게, 저럴땐 저렇게 (Python 조건문)

2015. 11. 11. 02:12왕초보를 위한 빠르게 훑어보는 파이썬



안녕하세요. Python 프로그래밍 이번 강좌의 주제는 "조건문" 입니다.

이번 강좌 시리즈의 컨셉은 "빠르게 훑어보는 Python" 인데, 앞 강좌에서는 이런저런 말이 너무 많았던 것 같아요.

그래서 이번 강좌는 핵심만 빠르게 쭉- 적고 마무리 해보겠습니다.



조건문은 언제쓰지?


조건문은 왜 써야되요?

우리가 프로그램을 만들다보면, 아래와 같은 문제에 자주 부딪히게 됩니다.

이럴 경우에는 이렇게 하고, 저럴 경우에는 저렇게 해라.


실생활에서 아주 흔히 있는 일이죠. 예를 들어볼까요?

빵집에 가서 문 열었으면 빵을 사오고(1), 문 닫았으면 그냥 와라.(2)

배가 고프면 점심을 먹고(1), 안 고프면 공부를 해라.(2)

프로그램을 처음 배우면 Python을 배우고(1), 아니면 Java를 배워라.(2)

중학생이면 요금이 500원이고(1), 고등학생이면 1000원이고(2), 성인이면 1500원이다.(3)


정말 흔하게 벌어지는 이런 일들을 프로그램에서는 어떻게 처리를 하면 될까요?

이때 필요한 것이 바로 "조건문" 이라는 문법입니다.


자, 조건문 문법이 왜 존재하는지, 그 필요성에 대해서는 확실히 이해하셨죠?

그러면 Python의 조건문 문법은 어떻게 구성되는지 알아볼건데요.

지금까지 우리가 배운것들을 이용해서 조건문을 완성해 보겠습니다.


그리고 마지막에는 실생활의 문제를 조건문으로 해결하는 간단한 활용방법도 소개해드리겠습니다.



조건문 문법입니다.


저,, 설명듣기 전에 조건문 문법 구경부터 좀 해봅시다!

이러쿵 저러쿵 백날 말해봤자, 일단 눈으로 한번 보는게 속시원하고 뒤에 이어지는 설명듣기에도 편합니다. 그쵸?

아래가 Python의 조건문이에요. if 로 시작해서 else 까지가 하나의 큰 조건문 덩어리에요.


위에서부터 아래로 조건문을 검사하고, 조건문의 결과가 참(True)인 조건문 하나만 실행이 됩니다.

아래의 경우에서 만약, 조건문1,2,3이 아래와 같다면 어떤 부분이 실행이 될까요?

조건문1 --> 거짓(False)

조건문2 --> 참(True)

조건문3 --> 참(True)

조건문1은 거짓이니 pass !

조건문2는 참이니까, 조건문2이 참일 때 실행되는 부분 #1, #2, #3 이 모두 실행이 됩니다.

조건문3도 참이니까 실행될까요?

아니죠. 전체의 큰 조건문 덩어리에서 참(True)인 조건문을 만나면, 해당 조건문만 실행이 되고, 나머지 조건은 검사하지 않고, 전체의 조건문이 종료가 됩니다.



여기서 중요하게 보아야 할 문법 포인트 4가지 !!

  1. if, elif, else 키워드로 조건문이 시작된다는 점
  2. 각 조건문 마지막부분에는 ":" 으로 끝냈다는 점.
  3. if, else 는 1번만 사용했는데, elif는 여러번(여기서는 2번) 사용한 점
  4. 각 조건문이 참일 때 실행되는 부분은 한줄 아래, 그리고 공백 4개를 먼저 입력한 뒤에(들여쓰기) 위치하고 있다는 점.

이게 다에요. 끝이에요.

외우기 힘드시나요? 그러면 이거 미리 어딘가에 복사해서 붙여놓고, 프로그램 만드실 때, 붙여넣기 하셔서 필요한 부분만 변경하시면 되요. 외우지 마세요. 장담하는데 10번 정도 복사해서 붙여넣기 하다보면, 그냥 익혀집니다.

음.. 장담까진 아니고요, 암튼 외우지 마세요. 하다보면 됩니다. 라는 걸 말하고 싶었어요. :)



Python에서 들여쓰기가 가지는 의미


들여쓰기는 Python 언어가 가지는 중요한 특징중에 하나인데요,

Python 프로그래밍에서는 여기서부터 여기까지는 함께 실행해야 하는 하나의 흐름(문단)이야.

라고 컴퓨터에게 알려주기 위해서 "들여쓰기"를 이용합니다.

역시, 이것도 설명하기보단 그냥 눈으로 보는게 이해하기 쉬울것 같네요.


위 조건문 예제를 보면,

첫번째 조건문이 참이면, 실행되는 문장이 2개 있습니다.

if(조건문1) :

    조건문1이 참일 때 실행되는 부분 #1.

    조건문1이 참일 때 실행되는 부분 #2.

이 2개의 문장은 들여쓰기가 스페이스 4개로 동일하죠. 따라서, 조건문1이 참이면 두개의 문장 모두 실행이 됩니다.


그러면 들여쓰기를 다르게 하면 어떻게 되나요?

아래와 같이 문법에러가 발생합니다.




들여쓰기를 할때, 사실 1칸이어도 되고, 2칸이어도 되고, 100칸 이어도 잘 동작합니다.

다만, 조건문이 참일때 실행되는 문장 모두 동일한 간격으로 들여쓰기하는 것이 문법규칙입니다.

문법을 지키지 않으면 문법 오류로 인해서 실행이 되지 않습니다.


보기좋은 떡이 먹기에도 좋다고, 프로그램도 보기좋게 작성해야 합니다.

처음에는 혼자서 프로그램 만들고 하겠지만, 어느정도 실력이 쌓여서 방대한 프로그램을 만들려면 여러명이서 프로그램을 만들어야 하는데, 이때 본인의 코드를 남이 보기도하고, 남이 작성한 코드를 내가 보기도 하는 경우가 아주 빈번합니다. 이때 프로그램이 보기좋게 작성되어 있지 않으면 코드를 해석하는데 불필요한 시간이 낭비되니깐, 꼭 보기 좋게 작성하세요.

그래서....결론은.....

다수의 Python 개발자들은 스페이스 4개를 가장 많이 사용합니다. 저희는 초급이니까 일단 따라합시다.

조건문과 각 조건문이 참 일때 실행되는 구문을 구분하기 위해서, 스페이스 4개 쓰세요. ^^




조건문 배웠으니, 써보자.


우리의 스터디 스타일은 일단 구경하고 시작하는거니깐....

일단 예제 나갑니다. 한번 구경해보세요.



위와 같이 조건문을 작성했습니다.

Enter를 치면???

아래와 같이 결과가 파랑색으로 출력됩니다.

x의 값이 10 이고, 첫번째 조건문에서 x 가 10 인지 확인(x==10) 하고 있습니다.

x의 값이 10 이기 때문에 첫번째 조건문의 결과가 참(True)이라서, 해당 조건문 바로아래 print("x가 10입니다") 함수가 실행이 된 것을 알 수 있습니다. 하나의 조건문이 참(True)이 되면 나머지 조건은 검사하지 않고 종료됩니다.

별거 없죠? 쉽습니다 ^^

자, 코드 내용은 별거 없는데, 조건문 관련해서 알려드릴 사항이 몇가지 있어요.


1. 조건문은 어떻게 작성하는거죠?

2. if, elif, else 가 의미하는건 뭔가요?


1. 조건문 작성법

"조건문"의 결과는 반드시 참/거짓 중에 하나로 결정이 되도록 작성해야 합니다.

2개의 비교대상이 같은지, 다른지, 값이 큰지, 작은지 비교해서 결과는 참/거짓으로 나오면 되겠네요.

아래 테이블 보고 작성해볼게요.


비교 연산자

설명 

X == Y 

X와 Y의 값이 같으면 참(True), 다르면 거짓(False) 

X != Y

X와 Y의 값이 다르면 참(True), 같으면 거짓(False) 

X > Y 

X가 Y보다 크면 참(True), 작거나 같으면 거짓(False)

X < Y

X가 Y보다 작으면 참(True), 크거나 같으면 거짓(False) 

X >= Y

X가 Y보다 크거나 같으면 참(True), 작으면 거짓(False) 

X <= Y

X가 Y보다 작거나 같으면 참(True), 크면 거짓(False) 


조건문을 작성했는데, 참인지 거짓인지 직접 확인해보고 싶은데, 방법이 있나요?

Python shell에서 조건문을 입력해보면 결과가 True/False로 출력됩니다.

아래 그림 참고하세요.


참고로 이 밖에도 조건문에 사용되는 표현은 굉장히 많지만, 간단히 훑어보고 지나가려고 이것만 알려드려요.

난 조건문 마스터하고 싶다!! 하시면 구글에서 "Python 조건문" 으로 검색하시면 대량의 자료가 나옵니다.

혹시나, 조건문에는 이것만 사용할 수 있나보다..하고 착각하시면 안되니까 말씀드리는 거에요.


2. if, elif, else가 의미하는것은 뭔가요?

첫번째 검사할 조건을 if 문으로 사용하고요,

두번째, 세번째, 네번째, ... 등등 이후에 검사하고 싶은 것은 모두 elif 문으로 사용하면 됩니다.

if문, elif문의 모든 조건이 참이아닌 이외의 조건은 모두 else 문에서 처리를 하면 됩니다.


다시 한번 정리하면~ 아래와 같습니다.

  • 첫번째 조건문 ---------> (if문 사용)

  • 두번째~N번째 조건문 ---> (elif문 사용)

  • 기타의 경우 -----------> (else문 이용하여 처리)


조건문 문법 끝났습니다!!!

힘들게 배웠으니, 활용해봐야죠!!!



커피자판기를 조건문으로 만들어볼까?



저는 지금 "커피자판기" 프로그램을 만드는 중입니다.

사용자가 500원을 넣으면 아메리카노를 뽑아주고,

1000원을 넣으면 까페라떼를 뽑아주고,

2000원을 넣으면 카라멜 마끼아또를 뽑아주는 자판기를 만들거에요.


먼저 Python 프로그래밍 하기 전에, 한글로 코딩을 해볼까요?


심플하네요. 근데, 한글은 우리만 이해할 수 있고, 컴퓨터는 알아볼 수 없죠?

컴퓨터가 이해할 수 있도록 Python 언어로 작성해볼게요.



커피자판기 Python version



프로그램을 작성하기 전에, 어떻게 프로그램을 작성하면 좋을지 미리 잠시 생각좀 해볼게요.

음..일단 조건문을 사용해야 하겠네요. 사용자가 입력한 금액이 얼마인지에 따라 다른 커피를 만들어야 하니깐요.

조건문에서 사용자가 입력한 금액을 가지고 참/거짓을 따져보려면, 사용자가 입력한 금액이 저장된 변수가 필요할거에요.

조건문이 참일때 실행되는 출력문은 print함수를 이용하면 될것 같아요.

더 필요한게 있나요?

음 일단 없는것 같은데, 자 그럼 프로그램 작성해볼게요.


먼저, 사용자가 입력한 금액을 저장할 변수를 만들고, 금액을 입력해보겠습니다.

변수에 값이 잘 저장되었는지 print함수를 이용해서 출력도 해볼게요.




자, 다음은 사용자가 입력한 금액에 따라 다른 커피를 만들어야 되니깐,

조건문을 만들 차례에요.

제일 먼저, 500원을 입력했는지? 를 만들어볼게요


자 다음으로 2번째 조건, 3번째 조건들을 만들어 보겠습니다.


마지막으로 기타 조건을 위한 else 구문을 만들어 볼게요.


자, 이제 실행해보겠습니다. Enter를 눌러주세요!

결과가 어떻게 나왔나요? 원하는대로 아메리카노를 만들었나요?




마무리하며...


이번장은 "조건문"에 대해서 알아봤어요.

사실, 지금 소개해 드린 내용보다 조건문에서 알아야 할 것들이 더 다양하게 많습니다.

본격적으로 Python프로그램을 만든다면, 추가적인 내용을 꼭 숙지해야 합니다.

하지만, 우리는 지금 빠르게 Python의 전반적인 아주 기초가 되는 내용에 대해서 가볍게 훑어보는 중이기 때문에

슬쩍 소개해 드린 거에요.


이어지는 강좌는 "반복문" 입니다.

컴퓨터가 사람보다 더 잘하는 분야가 있다면, "신속 정확한 단순반복" 이겠죠.

컴퓨터에게 단순 반복적인 업무를 시키려면 "반복문" 문법을 익혀서 시키면 됩니다.

다음장에서 뵈요 ^^ 수고하셨습니다.



Python을 좋아하시는 분들, 그냥 지나치지 마시고 댓글로 인사라도 남겨주세요.
Python을 좋아하는 분들과 community 만들어서 open source project 진행하고 싶은 마음이 있습니다.
꼭 project가 아니라도, 함께 스터디/토론 하는 것도 좋고요.
저의 소중한 인연이 되어주세요 :)