이제 제어
라는 주제로 넘어갑니다. 그동안 제어가 없는 코드를 작성했는데, 이 경우 위에서 아래로 멈추지 않고 코드가 진행됩니다. 프로그래밍 분야에서 '제어'는 어느 코드를 실행할지를 결정하는 주체인데, 이번에는 if
를 이용해 조건문을 작성하고, 코드의 흐름을 제어해 봅시다. if [condition]
형태로 작성합니다.
if문 작성하기
if
는 Python에서 조건문을 작성하기 위한 키워드로, 조건을 판단하여 해당 조건에 맞는 작업을 수행하는 데 쓰입니다.
다른 프로그래밍 언어에서 블럭을 표현하기 위해 중괄호({})를 사용하는 데에 반해, Python에서는 콜론(:)과 들여쓰기로 블럭을 표현합니다. 조건문은 if, elif, else를 혼합해서 사용할 수 있으며, elif
는 타 언어의 else if
구문과 동일한 역할입니다. elif와 else는 상위의 if문 없이 단독으로 사용 불가능합니다.
비교 연산자
조건문은 True나 False로 평가되는 condition
을 판단합니다. a가 10보다 큰 경우
와 같은 조건식을 작성하려면, 비교 연산자를 사용할 수 있습니다.
- x < y : x가 y보다 작은 경우 True
- x <= y : x가 y보다 작거나 같은 경우 True
- x > y : x가 y보다 큰 경우 True
- x >= y : x가 y보다 크거나 같은 경우 True
- x == y : x와 y가 같은 경우 True
- x != y : x와 y가 다른 경우 True
비교 연산자는 chaining(이어 붙이기)
가능합니다. a가 5 이상, 10이하인 경우
는 5 <= a and a <= 10
이라는 조건식을 사용할 수도 있지만, 아래처럼 비교 연산자를 체이닝하는 것이 더 직관적입니다.
논리 연산자
a가 10보다 크고 짝수인 경우
와 같은 조건식을 작성하려면, 논리 연산자
를 사용할 수 있습니다. 타 언어에선 &&, ||, !와 같은 키워드로 사용되는데, Python은 이들을 and, or, not과 같이 키워드로서 표현합니다.
in 키워드
Python은 iterable 자료형을 정말 잘 지원하고 있다고 했습니다. 특정 값 x가 iterable 자료형에 들어 있는지를 검사하려면 in
키워드를 사용하면 됩니다. 또한, Bool 연산자인 not
은 in에도 적용 가능하므로 '해당 값이 들어 있지 않은지'도 검사할 수 있습니다.
삼항 연산자
True일 때 x 리턴, False일 때 y 리턴
과 같은 로직을 작성하려면, 아래처럼 if문을 작성할 수 있습니다.
'nickname' 이라는 key가 딕셔너리에 있으면 d['nickname']을 출력하고, 없으면 d['name']을 출력하는 코드입니다. Python은 삼항 연산자
를 지원하며, 아래처럼 사용할 수 있습니다.
[condition이 True일 때의 리턴값] if [condition] else [condition이 False일 때의 리턴값]
형태로 사용합니다. 물음표와 콜론을 사용하는 타 언어의 삼항 연산자와 비교하더라도 의외로 가독성이 높습니다.
'Python 계열 > Python 레거시 글' 카테고리의 다른 글
[Python] 반복문 - while (0) | 2018.06.23 |
---|---|
[Python] 반복문 - for (0) | 2018.06.22 |
[Python] Iterable 자료형 - Dictionary, Set (0) | 2018.06.20 |
[Python] Iterable 자료형 - List, Tuple (1) | 2018.06.19 |
[Python] 변수와 기본 자료형 (0) | 2018.06.18 |