이제 제어라는 주제로 넘어갑니다. 그동안 제어가 없는 코드를 작성했는데, 이 경우 위에서 아래로 멈추지 않고 코드가 진행됩니다. 프로그래밍 분야에서 '제어'는 어느 코드를 실행할지를 결정하는 주체인데, 이번에는 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일 때의 리턴값] 형태로 사용합니다. 물음표와 콜론을 사용하는 타 언어의 삼항 연산자와 비교하더라도 의외로 가독성이 높습니다.

+ Recent posts