14.1 else 사용하기
Unit 14. else를 사용하여 두 방향으로 분기하기
if 조건문은 분기(branch)를 위한 문법입니다. 즉, 분기는 "둘 이상으로 갈라지다"라는 뜻으로 프로그램의 흐름을 둘 이상으로 나누는 것을 말합니다. 이는 마치 도로의 분기점과 같죠.
지금까지 if 조건문으로 조건식에 맞는 코드만 실행했습니다. if에 else를 사용하면 조건식이 만족할 때와 만족하지 않을 때 각각 다른 코드를 실행할 수 있습니다. 즉, 프로그램이 두 방향으로 분기하는 것이죠.
실생활에서 전화가 왔을 때의 예를 들면 다음과 같은 모양이 됩니다.
if 광고 전화인가?: 전화를 끊고, 차단 목록에 등록한다. else: 계속 통화한다.
14.1 else 사용하기
else는 if 조건문 뒤에 오며 단독으로 사용할 수 없습니다. 그리고 if와 마찬가지로 else도 :(콜론)을 붙이며 다음 줄에 실행할 코드가 옵니다.
if 조건식: 코드1 else: 코드2
그럼 다음과 같이 들여쓰기를 맞춰서 파이썬 셸에 코드를 입력해보세요.
>>> x = 5 >>> if x == 10: ... print('10입니다.') ... else: ... print('10이 아닙니다.') ... 10이 아닙니다.
14.1.1 if와 else의 기본 형태와 실행 흐름 알아보기
else는 if의 조건식이 만족하지 않을 때 코드를 실행합니다. 여기서는 x에 5가 들어있어서 x == 10을 만족하지 않으므로 else의 print가 실행되어 '10이 아닙니다.'가 출력됩니다.
즉, 조건식이 참(True)이면 if의 코드(if 본문)가 실행되고, 거짓(False)이면 else의 코드(else 본문)가 실행됩니다. 코드와 실행 흐름을 비교해보세요.
변수 x에 10이 들어있으면 y에 x를 할당하고, 아니면 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 함수 활용하기'를 참조하세요.