Welcome to the Matrix

018. 파이썬 if, else, elif 조건문을 이용한 조건 분기 본문

Python/PythonBasic

018. 파이썬 if, else, elif 조건문을 이용한 조건 분기

haru.keiko 2021. 1. 5. 23:01

파이썬 조건문 썸네일

이번에는 파이썬의 '조건문'에 대해서 알아보겠습니다. 

조건문

'조건문'이란 특정 조건에 따라 프로그램의 소스 코드를 실행하거나 또는 실행하지 않게 하는 프로그래밍 문장입니다. 이와 같은 것을 전문 용어로 '조건 분기'라고 하는데요, 어떤 조건을 기반으로 프로그램의 흐름을 변경한다는 의미입니다. 

 

일상생활을 하면서도 우리는 여러 상황에 놓이게 됩니다. 

예를 들어 1,000원을 가지고 있을 경우, 편의점에 들어갔다고 가정합니다. 이때 우리는 여러 가지 결정을 해야 하는 상황이 생깁니다. 편의점 내의 각 제품의 가격을 확인한 후 1,000원짜리 캔 커피를 산다거나 또는 1,000원으로 살 수 있는 것이 없다고 판단하고 그냥 편의점을 나온다던지..

또는 친구를 만나고 집으로 돌아올 때 지갑에 있는 돈을 확인한 후, 돈의 여유가 있을 경우 택시를 타고 집에 온다던지 아님 버스나 지하철 같은 대중교통을 이용한다던지 그것도 아니면, 지갑을 보며 눈물을 머금고 걸어서 집으로 돌아올 수도 있겠죠.. ^^

 

이처럼 어떠한 결정을 내려야 하는 상황을 프로그램의 세계에서는 '조건문'을 사용합니다.

파이썬 프로그램에서 어떤 조건을 기반으로 프로그램의 흐름을 변경하도록 하기 위해 조건문을 사용합니다.

 

if 조건문

파이썬에서 가장 기본이 되는 조건문은 'if 조건문'입니다. 

영어의 '만일 ~라면'이라는 의미로 조건을 달 수 있습니다. 실제 파이썬의 조건문을 살펴보면, 정말 사람이 사용하는 언어와 비슷하구나라고 느낄 수 있을 것입니다. 

 

if 조건문의 사용 방법은 다음과 같습니다. 

if 조건문(불(Boolean) 값이 나오는 표현식) :
    조건이 참일 때 수행할 문장 1
    조건이 참일 때 수행할 문장 2
    ...

if 조건문은 'if' 뒤에 조건으로 '불(Boolean) 값'을 결과로 하는 표현식을 사용합니다. 그리고, 그 표현식 뒤에 콜론(':')을 붙여 '여기까지가 조건'임을 밝힙니다.

'if 조건문:' 바로 아래 if 조건문을 만족할 경우(True)에 실행할 파이썬 문장을 써줍니다. 이 문장들은 '탭 문자'를 사용해 '들여 쓰기(indent)'를 하는 것을 원칙으로 합니다. 이렇게 탭 문자를 사용해 들여쓰기한 문장들을 '블록(Block)'이라고 하고, 한 단위로 봅니다. 즉, if 조건문을 사용하면, 블록에 해당하는 문장들을 실행할지 말지를 결정하게 됩니다. 

왜 그러냐고요? 이는 단순히 'if 조건문을 사용하기 위한 문법'이라고 생각하면 됩니다. 

 

'불(Boolean)' 자료형에 대해 잘 모른다면, 아래 포스트를 먼저 보고 오세요.

 

009. 파이썬 불(Boolean) 자료형과 연산자

이번 시간에는 파이썬의 '불(Boolean) 자료형'과 연산자에 대해서 알아보겠습니다. 불(Boolean) 자료형 '불리언(Boolean) 자료형'이라고도 하는 불 자료형은 아주 간단하지만, 정말 자주 사용되는 중요

null-0.tistory.com

 

if 조건문을 사용하는 간단한 예를 살펴보겠습니다. 

if Treu:
	print('It is True')
	print('It is running when if is True also')

파이썬 조건문을 사용용하는 간단한 예제

if 조건문에 'True'라는 불 값으로 조건을 주었습니다. 

이는 항상 참 값이기 때문에 if 조건문 이하의 탭 문자를 이용해서 적은 문장들(블록)이 실행됩니다. 

 

만약, if 조건문이 참이 아니라면 어떻게 될까요?

if False:
	print('It is False!')
	print('so, It won\'t run.')

참이 아닌 조건문을 사용하는 예제

이번에는 if 조건문의 조건을 False로 했습니다. 

if 조건문의 블록이 실행되지 않는 것을 볼 수 있습니다. 

 

위 예는 너무 단순하기 때문에 다른 예를 통해 좀 더 if 조건문에 대해서 알아보겠습니다. 

IDLE의 'File - New File'을 통해 새로운 파일을 열어서 아래와 같이 파이썬 프로그램을 작성하고 저장한 후, 실행하겠습니다.

# 정수를 입력받아 양수, 음수, 그리고 0을 확인
number = int(input('정수를 입력하세요 : '))

if number > 0:
    print('양수입니다.')

if number < 0:
    print('음수입니다.')

if number == 0:
    print('0입니다.')

조건문을 이용해 정수를 입력받아 음수, 양수, 0을 확인하는 파이썬 프로그램 예제

메뉴에서 'Run - Run Module'을 클릭해 실행합니다. 

양수, 음수, 0을 판단하는 프로그램 실행 결과

각 조건에 맞게 실행이 되는 것을 볼 수 있습니다. 

프로그램은 항상 위에서 아래로 실행이 됩니다. 

'number'가 양수일 경우, 'number > 0' 표현식이 'True'가 되어 해당 if 조건문의 블록이 실행되고, 나머지 if 조건문은 'False'가 되기 때문에 무시됩니다. 마찬가지로, 'number'가 음수일 경우, 'number < 0' 표현식이 'True'가 되기 때문에 해당 if 조건문만 실행이 되는 것입니다. 

if 조건문은 하나의 조건에서 그 조건이 참인 경우에 if 조건문에 종속된 문장들(블록)을 실행할 수 있습니다. 

 

들여 쓰기

위에서 들여 쓰기라는 것에 대해서 언급한 적이 있습니다. 

if 조건문에 종속되는 문장들을 표현할 때 '들여 쓰기(indentation)'을 하게 됩니다. 들여 쓰기를 한 문장들은 블록이라고 하고 이 블록을 하나의 연관된 문장으로 봅니다. 

각 프로그래밍 언어마다 각기 다른 블록 표현식을 사용하는데, 파이썬의 경우는 들여 쓰기로 블록을 구분하기 때문에 들여 쓰기는 매우 중요합니다. 

만약, if 조건문을 사용할 때 if 조건문에 종속된 문장 중 들여 쓰기를 하지 않는다면, 그 문장은 if 조건에 해당하지 않는다고 판단합니다. 그리고, 이후에 다시 들여 쓰기가 보인다면 이는 오류로 판단합니다. 

 

아래의 경우, 'SyntaxError'로 오류입니다.

if True:
	print('It is True.')
print('It is out of Block')
	print('How about this??')

파이썬 들여쓰게 오류 예제

 

아래의 경우, 오류 없이 정상적으로 실행됩니다. 하지만, If 조건문에 종속적인 블록은 첫 번째 print문만 해당됩니다.

if True:
    print('It is True.')
print('It is out of Block')
print('How about this??')

파이썬 들여쓰기 예제

 

if~else 조건문

앞서 기본적인 if 조건문의 사용법에 대해서 알아보았습니다. 

이번에 알아볼 조건문은 if 조건문의 약간 변형된 형태인 'if~else 조건문'입니다.

if 조건문의 경우, 하나의 조건을 만족하는 경우에 그 조건에 종속되는 문장을 실행했고, 그렇지 않을 경우에는 아무 실행도 하지 않았습니다. 

하지만, if~else 조건문의 경우에는 if 조건문의 조건을 만족하는 경우, 그에 해당하는 블록을 실행하고, if 조건문의 조건을 만족하지 않는 경우 else에 종속된 블록을 실행합니다. if 조건문과 다른 점은 조건이 참이든 거짓이든 하나의 블록을 실행한다는 점입니다. 

 

if~else 조건문을 사용하는 방법은 다음과 같습니다.

if 조건문:
    조건이 참일 때 수행할 문장 1
    조건이 참일 때 수행할 문장 2
    ...
else:
    조건이 거짓일 때 수행할 문장 1
    조건이 거짓일 때 수행할 문장 2
    ...

 

다음 예를 통해 더 알아보겠습니다. 

만약 편의점의 커피값이 1,000원일 경우 지갑에 1,000원 있다면 커피를 살 수 있을 것입니다. 하지만 지갑에 500원이 있다면 커피를 사지 못하고 그냥 나와야겠죠.

 

다음과 같이 1,000원을 가지고 있어 if 조건문에 만족할 경우, if 조건문의 블록을 실행합니다. 

money = 1000

if money >= 1000:
    print('커피를 산다.')
else:
    print('그냥 나온다.')

파이썬 if, else 예제

결과를 확인하면, 커피를 사는 것을 볼 수 있습니다. 

파이썬 if, else 예제 결과

 

하지만, 돈이 500원밖에 없어 if 조건문을 만족하지 못하면 어떻게 될까요?

money = 500

if money >= 1000:
    print('커피를 산다.')
else:
    print('그냥 나온다.')

파이썬 if, else 예제 거짓 경우 예제

if 조건문을 만족하지 않기 때문에 if 조건문의 블록을 실행하지 않고, else의 블록을 실행하게 됩니다. 

파이썬 if, else 예제 거짓 경우 예제 결과

 

if 조건문만 있는 경우, 조건문을 만족하지 않는 경우는 어떠한 것도 할 수 없었습니다. 

하지만, else를 추가로 사용함으로써 if 조건문의 조건을 만족하지 않는 경우에도 실행을 할 수 있습니다. 

if~else 조건문은 조건이 참 또는 거짓인 경우 둘 중 하나를 실행해야 할 필요가 있을 때 사용합니다.

 

프로그래밍을 할 때, 항상 조건에 맞는 부분만 실행할 수는 없기 때문에 'else'의 등장은 아주 효율적인 프로그램을 만들 수 있다고 할 수 있습니다. 

 

if~elif~else 조건문

우리는 지금까지 if 조건문, if~else 조건문에 대해서 알아봤습니다. 

if 조건문은 하나의 조건에서 그 조건이 참인 경우에만 실행을 할 필요가 있을 때 사용할 수 있었습니다. 

if~else 조건문은 하나의 조건에서 그 조건이 참인 경우, 그리고 거짓인 경우 둘 중 하나의 경우의 실행이 필요할 때 사용할 수 있었습니다. 

 

마지막으로 살펴볼 조건문은 'if~elif~else 조건문'입니다. 

세상 일이 항상 두 가지 경우로 구분되지만은 않습니다. 예를 들어, 계절 중 가장 좋아하는 계절을 선택할 경우 참일 조건이 4가지나 됩니다.

프로그램의 세계에서도 마찬가지인데, 경우에 따라 3개 이상의 조건중 참인 조건을 실행해야 할 경우가 있습니다. 

 

if~elif~else 조건문의 사용 방법은 다음과 같습니다. 

if 조건문:
    조건이 참일 때 수행할 문장들
elif 조건문:
    elif 조건문이 참일 때 수행할 문장들
elif 조건문:
    또 다른 elif 조건문이 참일 때 수행할 문장들
...
else:
    어떠한 조건도 만족하지 않을 경우 수행할 문장들

 

다음 예를 살펴보면 'if~elif~else 조건문'을 이해하는데 도움이 될 것입니다. 

아래 예제 코드를 굳이 이렇게 짤 필요는 없지만, if~elif~else 조건문을 이해하려는 목적이므로 참고 바랍니다. ^^

 

사용자로부터 좋아하는 계절을 입력받은 후, if, elif, else에 해당하는 조건에 맞을 경우, 해당 블록을 실행합니다. 

참고로 else는 if와 elif의 어떠한 조건도 만족하지 않을 경우 실행을 하게 됩니다. 

season = input('좋아하는 계절(봄, 여름, 가을, 겨울)은? ')

if season == '봄':
    print(f'좋아하는 계절은 {season}입니다.')
elif season == '여름':
    print(f'좋아하는 계절은 {season}입니다.')
elif season == '가을':
    print(f'좋아하는 계절은 {season}입니다.')
else:
    print(f'좋아하는 계절은 {season}입니다.')

파이썬 if, elif, else 예제

프로그램을 네 번 실행하면서 각 계절을 입력해 보았습니다. 

파이썬 if, elif, else 예제 결과

 

예에서 본 것처럼, 3개지 이상의 조건 중 만족하는 한 경우를 실행하기 위해서는 if~elif~else 조건문을 사용해야 합니다. 

세 개 이상의 조건에서 만족하는 한 경우를 실행하기 위해서는 if~elif~else 조건문을 사용합니다.

 

이번 시간에는 간단하게 파이썬 조건문에 대해서 알아봤습니다. 

앞으로 조건문은 주구장창 사용할 것이기 때문에 여기서는 기본적인 사용법만 익히고, 앞으로 천천히 연습을 해가면서 복잡한 사용방법이나 활용방법을 익히면 되겠습니다. 

 

이상으로 파이썬 조건문에 대한 포스팅을 마치겠습니다.