14.1 else 사용하기

Unit 14. else를 사용하여 두 방향으로 분기하기

if 조건문은 분기(branch)를 위한 문법입니다. 즉, 분기는 "둘 이상으로 갈라지다"라는 뜻으로 프로그램의 흐름을 둘 이상으로 나누는 것을 말합니다. 이는 마치 도로의 분기점과 같죠.

그림 14-1 도로 이정표

지금까지 if 조건문으로 조건식에 맞는 코드만 실행했습니다. ifelse를 사용하면 조건식이 만족할 때와 만족하지 않을 때 각각 다른 코드를 실행할 수 있습니다. 즉, 프로그램이 두 방향으로 분기하는 것이죠.

실생활에서 전화가 왔을 때의 예를 들면 다음과 같은 모양이 됩니다.

if 광고 전화인가?:
    전화를 끊고, 차단 목록에 등록한다.
else:
    계속 통화한다.

14.1 else 사용하기

elseif 조건문 뒤에 오며 단독으로 사용할 수 없습니다. 그리고 if와 마찬가지로 else:(콜론)을 붙이며 다음 줄에 실행할 코드가 옵니다.

if 조건식:
     코드1
else:
     코드2

그럼 다음과 같이 들여쓰기를 맞춰서 파이썬 셸에 코드를 입력해보세요.

>>> x = 5
>>> if x == 10:
...      print('10입니다.')
... else:
...      print('10이 아닙니다.')
... 
10 아닙니다.

14.1.1  if와 else의 기본 형태와 실행 흐름 알아보기

elseif의 조건식이 만족하지 않을 때 코드를 실행합니다. 여기서는 x에 5가 들어있어서 x == 10을 만족하지 않으므로 elseprint가 실행되어 '10이 아닙니다.'가 출력됩니다.

그림 14-2 if와 else

즉, 조건식이 참(True)이면 if의 코드(if 본문)가 실행되고, 거짓(False)이면 else의 코드(else 본문)가 실행됩니다. 코드와 실행 흐름을 비교해보세요.

그림 14-3 if와 else의 실행 흐름
참고 | 변수에 값 할당을 if, else로 축약하기

변수 x에 10이 들어있으면 yx를 할당하고, 아니면 y에 0을 할당하는 코드는 다음과 같이 만들 수 있습니다.

>>> x = 5
>>> if x == 10:
...     y = x
... else:
...     y = 0
...
>>> y
0

이렇게 if, else에서 변수에 값을 할당할 때는 변수 = 값 if 조건문 else 값 형식으로 축약할 수 있으며 이런 문법을 조건부 표현식(conditional expression)이라고 부릅니다.

>>> x = 5
>>> y = x if x == 10 else 0
>>> y
0

보통 조건부 표현식은 람다 표현식에서 자주 사용합니다. 활용 방법은 '32.2 람다 표현식과 map, filter, reduce 함수 활용하기'를 참조하세요.