13.1 if 조건문 사용하기

if 조건문은 if 다음에 조건식을 지정하고 :(콜론)을 붙이며 다음 줄에 실행할 코드가 옵니다. 이때 실행할 코드는 반드시 들여쓰기를 해야 합니다.

if 조건식:
     코드
#↑ 들여쓰기 4칸

먼저 IDLE의 파이썬 셸에서 if 조건문을 사용해보겠습니다.

변수 x에 10을 할당합니다. 그리고 if x == 10:을 입력한 뒤 엔터 키를 누르면 자동으로 들여쓰기가 됩니다. 그다음에 print('10입니다.')를 입력하고 엔터 키를 누르면 빈 줄이 나옵니다. 이 상태에서 엔터 키를 다시 누르면 if 조건문 작성이 끝나고 결과가 출력됩니다.

그림 13-1 IDLE의 파이썬 셸에서 if 조건문 작성
그림 ‎13 1 IDLE의 파이썬 셸에서 if 조건문 작성

콘솔(터미널, 명령 프롬프트)에서 if 조건문을 작성할 때는 자동으로 들여쓰기가 되지 않습니다. 다음과 같이 if x == 10:을 입력하고 엔터 키를 누르면 ...이 나옵니다. 이 부분에서 들여쓰기로 공백 4칸을 띄워주고 print('10입니다.')를 입력합니다. 그다음에 엔터 키를 누르면 또 ...가 나옵니다. 이 상태에서 엔터 키를 다시 누르면 if 조건문 작성이 끝나고 결과가 출력됩니다.

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

만약 if 다음 줄에서 들여쓰기를 하지 않으면 들여쓰기 에러가 발생합니다. 이 항상 이 부분을 주의해주세요.

>>> x = 10
>>> if x == 10:
... print('10입니다.')
  File "<stdin>", line 2
    print('10입니다.')
        ^
IndentationError: expected an indented block

이제 if 조건문을 자세히 알아보겠습니다. 파이썬에서 조건문은 if 조건식: 형식으로 사용하며 그 다음 줄에는 들여쓰기를 한 뒤 조건식이 만족할 때 실행할 코드를 넣습니다.

그림 13-2 if 조건문의 기본 형태
그림 ‎13 2 if 조건문의 기본 형태

여기서는 변수 x에 10을 할당한 뒤 if 조건문으로 x가 10과 같은지 검사하였습니다. 조건식은 x == 10과 같은 형식으로 지정해주는데 ==는 두 값이 "같을 때"라는 뜻이며 수학의 =(등호)와 같습니다.

즉, if x == 10:x가 10과 같은지 비교한 뒤 같으면 다음에 오는 코드를 실행하라는 뜻이 됩니다. 여기서는 x가 10이고 조건식이 만족하므로 그다음 줄의 print가 실행되어 '10입니다.'가 출력됩니다.

if를 사용할 때 주의할 점이 있는데 파이썬에서는 =을 할당으로 사용하고 있으므로 값을 비교할 때는 =를 두 개 붙여서 ==로 사용해야 합니다. 초보들은 자주 틀리는 부분이니 if 안에서 ==를 사용했는지 반드시 확인하세요.

>>> if x = 10:
  File "<stdin>", line 1
    if x = 10:
         ^
SyntaxError: invalid syntax

그리고 조건식 뒤에 :를 빠뜨리는 실수도 자주하니 :도 확인해주세요. 모두 잘못된 문법이라 실행할 때 에러가 발생합니다. 만약 에러가 발생하면 콘솔에서는 잘못된 코드 아래에 ^가 표시되고, IDLE에서는 빨간색으로 표시되므로 자신이 실수한 부분을 쉽게 찾을 수 있습니다.

>>> if x == 10
  File "<stdin>", line 1
    if x == 10
             ^
SyntaxError: invalid syntax

이번에는 if 조건문에 조건식만 작성하고 코드를 생략하는 방법을 알아보겠습니다.

>>> x = 10
>>> if x == 10:
...     pass
...
>>> 
p>if 다음 줄에 pass라는 특별한 키워드를 넣었습니다. 여기서 pass는 아무 일도 하지 않고 그냥 넘어간다는 뜻입니다. 파이썬에서는 if 다음 줄에 아무 코드도 넣지 않으면 에러가 발생하므로 if 조건문의 형태를 유지하기 위해 pass를 사용합니다.

pass는 아무 일도 하지 않는 코드라서 의미가 없을 것 같지만 나중에 작성해야 할 코드를 표시할 때 사용합니다.

if x == 10:
    pass    # TODO: x가 10일 때 처리가 필요함

참고로 TODO는 해야 할 일이라는 뜻인데 보통 주석에 넣습니다. 이렇게 TODO를 넣어 두면 검색으로 쉽게 찾을 수 있죠.