14.1 else 사용하기

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

if 조건식:
     코드1 # ← 들여쓰기 4칸
else:
     코드2
#↑ 들여쓰기 4칸

먼저 IDLE의 파이썬 셸에서 if, else를 사용해보겠습니다.

변수 x에 10을 할당합니다. 그리고 if x == 10:을 입력한 뒤 엔터 키를 누르면 자동으로 들여쓰기가 됩니다. 그다음에 print('10입니다.')를 입력하고 엔터 키를 누르면 빈 줄이 나옵니다. 이 줄에서 백 스페이스를 눌러 들여쓰기를 지운 뒤에 else:를 입력하세요. 그다음에 print('10이 아닙니다.')를 입력하고 엔터 키를 누르면 빈 줄이 나옵니다. 마지막으로 이 상태에서 엔터 키를 다시 누르면 if, else 작성이 끝나고 결과가 출력됩니다.

그림 14-2 IDLE의 파이썬 셸에서 if
그림 ‎14 2 IDLE의 파이썬 셸에서 if, else 작성

콘솔(터미널, 명령 프롬프트)에서 if, else를 작성할 때는 자동으로 들여쓰기가 되지 않습니다. 다음과 같이 if x == 10: 다음 줄에서는 들여쓰기를 한 뒤 print('10입니다.')를 입력합니다. 마찬가지로 else: 다음 줄에서는 들여쓰기를 한 뒤 print('10이 아닙니다.')를 입력합니다. 그다음 빈 줄에서 엔터 키를 누르면 if, else 작성이 끝나고 결과가 출력됩니다.

>>> x = 5
>>> if x == 10:
...      print('10입니다.') # ← 들여쓰기 4칸
... else:
...      print('10이 아닙니다.') # ← 들여쓰기 4칸
... # ← 빈 줄에서 엔터 키를 누름
10 아닙니다.

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

그림 14-3 if와 else
그림 ‎14 3 if와 else

보통 if의 조건식이 만족하면 참(True), 만족하지 않으면 거짓(False)라고 부릅니다. 즉, 조건식이 참이면 if의 코드가 실행되고, 거짓이면 else의 코드가 실행됩니다.

참고 | 변수에 값 할당을 if, else로 축약하기

변수 x에 5가 들어있으면 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

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