1. 조건문(Condition Statements)


이번에는 조건문(Condition Statements)에 대해서 알아보도록 하겠습니다. 조건문이란 말 그대로 조건의 결과에 따라서 실행되는 문장이 결정됩니다. 파이썬에서의 조건문은 바로 if문으로, 이 if문을 사용하면 조건식이 참(True)이냐 거짓(False)이냐에 따라 실행되는 문장을 다르게 만들 수 있습니다. 우선은 if문의 구조부터 보도록 하겠습니다.

if 조건식:
   문장

위의 구조를 보시면, 조건식이 참(True)과 거짓(False)으로 나뉘는데 주로 논리 연산자나 산술 연산자 등이 많이 쓰입니다. 예를 들어서, '만약에 변수 a의 값이 5보다 클 경우~'라는 조건을 만들어주고 싶으시면 'if a > 5:'라고 써주시면 됩니다. 주의하실 점은, 조건식 뒤에 반드시 콜론(:)을 빼먹지 않고 적어주어야만 합니다. 파이썬은 괄호로 묶는 다른 언어와는 다르게, 들여쓰기로 영역을 구분합니다.


이 if문을 더 간단하게 설명하자면, 실생활에서 내일 친구의 집에 놀러가려고 하는데 만약 비가 온다면 놀러가지 못하는 것을 예로 들어보겠습니다. 이를 if문으로 표현하면 아래와 같을 것입니다.

if 내일 비가 온다:
   집에서 잠이나 잔다

더 쉽게 그림으로 이를 표현한다면 아래와 같을 것입니다.

<순서도(Flow Chart)를 통한 예>


위 순서도를 보았을 때, 내일 비가 온다는게 조건으로 주어지면 비가 왔을때 집에서 잠을 자고, 비가 오지 않았을때는 조건에 해당하는 문장이 실행되지 않기 때문에 집에서 잠을 자지 않습니다. 이번에는 조건문에 대한 이해를 위하여, 직접 if문 이용하여 코드를 작성해보도록 하겠습니다.

>>> money = 1000
>>> if money >= 500:
	print("돈이 500원 이상 있습니다.")
돈이 500원 이상 있습니다.

위 코드를 보시면 변수 money가 1000이란 값을 지니며, 아래에 조건문으로 '만약에 변수 money의 값이 500 이상일 경우'에 '돈이 500원 이상 있습니다.'라는 문장을 출력하도록 했습니다. 만약, money의 값이 500 미만이였다면 조건식이 거짓이 되어 돈이 500원 이상 있다는 문장은 출력되지 않습니다. 이번에는, 조건에 해당하지 않을 경우에도 문장을 출력해보도록 해볼까요?


2. else문


방금 예제에서 if문만으로 무언가 부족하다는 느낌이 들죠? 파이썬에서는 어떠한 조건에 해당하지 않는 경우에 대해서 처리를 할 수 있도록 'else'문이라는 것이 존재합니다. 우선은 if~else문의 구조를 보도록 합시다.

if 조건식:
   문장
else:
   문장

위의 구조에서 만약에 조건식이 참일 경우에는 if문 아래의 문장이 실행되고, 그 외의 경우는 else문 아래의 문장이 실행됩니다. 참고로 else문은 if문에 종속적이며, else문 홀로 쓰일 수 없습니다. 이어서 if~else문도 동일하게 순서도로 예를 들어보도록 하겠습니다.

<순서도(Flow Chart)를 통한 예>


위 순서도에서는 이번에는 비가 올 경우에는 '집에서 잠이나 잔다'가 실행되고, 비가 오지 않을 경우에는 '밖으로 놀러 나간다'가 실행됩니다. else문이 어떤 녀석인지 이해하셨나요? 이해가 그래도 잘 되지 않는다면, 아까 보았던 예제에서 else문을 덧붙여 코드를 수정하고 결과를 확인해보도록 합시다.

>>> money = 430
>>> if money >= 500:
	print("돈이 500원 이상 있습니다.")
else:
	print("돈이 500원 미만입니다.")
돈이 500원 미만입니다.

위 코드에서는 변수 money의 값이 430이니 500보다 미만의 값임을 알 수 있습니다. 'money >= 500'이란 조건은 money의 값이 500 이상이여야 성립되는 조건인데 값이 430이므로 거짓이 되어 실행되지 않습니다. 이 때, else문 위에 있는 조건에 해당하지 않으므로 else문 아래의 문장이 실행됩니다. 이렇게 if~else문을 통해서 간단하게 조건 판단을 할 수 있으나 조건이 늘어나면 점점 더 어려워지고 복잡해집니다. 여기서 if문과 else문 사이에 elif문이라는 녀석을 넣어 다양한 조건 판단을 할 수 있게끔 만들 수 있습니다.


3. elif문


파이썬에서 elif문은 한번만 사용할 수 있는 if문과 else문과는 다르게, if문과 else문 사이에 여러번 사용할 수 있습니다. 먼저 elif문의 구조를 살펴보고, 어떠한 녀석인지 같이 살펴보도록 합시다.

if 조건식:
   문장
elif 조건식:
   문장
else:
   문장

위의 구조를 살펴보시면, if문의 조건식의 결과가 거짓일 때 elif문의 조건식을 검사하며 이 조건식마저도 거짓일 때 아무런 조건에도 해당하지 않으므로 else문의 문장이 실행됩니다. if~elif~else문을 순서도로 표현하자면 아래와 같습니다.



<순서도(Flow Chart)를 통한 예>


위 순서도에서는 비가 온다면 집에서 잠을 자고, 비가 오지 않으면 친구가 집에 있는지 확인합니다. 만약에 친구가 집에 있다면 친구 집으로 놀러가고, 없다면 집에서 놉니다. 여기서는 '비가 온다'가 if문에 해당하는 부분이며, '친구가 집에 있다'가 elif문에 해당합니다. elif문에 대해서 이해가 안되시면, 코드를 우선 보고 어떨때 사용하는 녀석인지 감을 잡도록 합시다.

>>> money = 500
>>> if money > 500:
	print("가지고 있는 돈이 500원보다 많습니다.")
elif money == 500:
	print("가지고 있는 돈이 500원입니다.")
else:
	print("가지고 있는 돈이 500원보다 적습니다.")
가지고 있는 돈이 500원입니다.

위 코드에서는, 먼저 money의 값이 500보다 큰지 검사합니다. 변수 money의 값은 500이므로, 500보다 크지않아 elif문으로 넘어갑니다. elif문에서는 money의 값이 500과 같은지 검사하는데, money의 값과 500이 서로 같으므로 '가지고 있는 돈이 500원입니다.' 라는 문장을 출력합니다. 그리고 마지막의 else문은 하나라도 조건이 해당하는게 있으므로 실행되지 않습니다. 간단하죠? 참고로 파이썬은 블록을 들여쓰기로 구분하므로, 들여쓰기가 잘못된 경우에는 에러가 발생할 수 있으니 주의하세요.