본문 바로가기
파이썬/기초 문법

[파이썬]if 조건문의 구조(if, else, elif, pass) 및 활용하기

by 코키드 Cokid 2022. 10. 5.
반응형

if문은 조건에 따라 코드를 실행한다. 어떤 프로그래밍 언어를 다루든 if문은 코딩을 배운다면 반드시 익혀야 하는데, 대부분의 프로그램이 if문 없이 작동이 어려울 만큼 if문이 많이 쓰이기 때문이다.

이번 포스팅에서는 if문의 구조, else문으로 False 처리하는 방법, elif로 다양한 조건문을 만드는 방법, pass로 if문 건너뛰기에 대해 다뤄보겠다.

 

if문을 꼭 알아야 하는 이유

배달 로봇이 식당부터 고객의 집까지 자율주행으로 배달할 때 발생하는 여러 돌발 상황에 어떻게 대처할지 상상해보자.

  • 신호등이 빨간불이면 멈추고 파란불이면 건너간다.
  • 높은 턱이 있으면 다른 길로 돌아서 간다.
  • 카메라 시야가 흐리면 와이퍼로 카메라를 닦아라.

배달 로봇의 배달 여정에서 다양한 상황을 맞닥뜨릴 수 있는데, 로봇 제작자는 이런 상황들을 고려하여 코드를 작성할 것이다. 대개는 이런 상황들을 조건화하여 조건이 충족되거나 충족되지 않을 때 특정 액션을 취하게 한다.

배달 로봇이 아니어도 대부분의 프로그램은 여러 조건문을 작성하여 만들어지는 경우가 많다. if문을 잘 다루지 못한다면 좋은 퀄리티의 프로그램을 구현하지 못할 가능성이 높으니 if문을 꼭 익히도록 하자.

 

if문의 구조 - 조건문, 들여쓰기, 콜론(:), if, elif, else

if문 구조 - 조건문, 들여쓰기, 콜론

 

위 예시는 가장 기본적은 if문의 사용법이다. 먼저 if 뒤에 조건문을 입력한다. 조건문을 입력 후에는 꼭 콜론(:)을 적어줘야 한다. 그다음 줄은 들여쓰기를 해야 하는데 space를 네 칸 치거나 tab키를 눌러서 들여쓰기를 한 뒤 수행할 문장을 적는다. 대부분의 IDE에서는 콜론을 입력하고 엔터를 치면 자동으로 들여쓰기를 해준다.

if 1 == 1:
    print('='*5 + 'RESULT' + '='*5)
    print('1 = 1')
# 결과 출력
=====RESULT=====
1 = 1

위 예문을 보자 if 조건문: 형태로 시작하여 다음 줄에는 들여쓰기를 했는데 if문에 포함되는 코드는 모두 들여쓰기를 한다.

if문은 조건문이 True일 경우에만 작동하는데 조건문 1 == 1은 True를 반환하여 if문이 실행되는 모습이다.

 

else로 False인 조건문 처리하기

house = False
if house:
    print('You\'re rich')
else:
    print('You\'re poor')
# 결과 출력
Yor're rich

else를 사용하면 조건문이 False인 경우에도 코드를 수행할 수 있다. if와 else를 같이 사용하면 조건문이 True일 때 if문을 실행하고 조건문이 False일 때 else문을 실행한다.

집이 있으면 부자, 없으면 가난한 사람을 출력하는 문장을 작성했다. house가 True이면 if문을 실행하고 False이면 else문을 실행한다. house는 False값을 가지기 때문에 if문은 실행되지 않고 else문이 실행되는 것을 볼 수 있다.

 

if문 간결하게 작성하기

house = 10
if house > 5:
    print('You\'re rich')
else:
    print('You\'re poor')

위 코드는 house가 5 이상일 때 'You\'re rich' 아닐 경우에는 'You\'re poor'를 출력한다.
파이썬은 이런 단순한 if문은 더욱 간단하게 표현할 수 있다.

 

house = 10
if house > 5: print('You\'re rich')
else: print('You\'re poor')

if문이 코드 한 줄로 이루어져 있으면 위와 같이 if문을 작성할 수 있다. 콜론(:) 뒤에 엔터를 치지 않고 그 옆에 코드를 작성하면 동일하게 if문이 실행된다.

house = 10
print('Yor\'re rich') if house > 5 else print('Yor\'re poor')

if문을 더욱 단순화하여 한 줄로 표현할 수 있다. 위 표현식을 conditional expression(조건부 표현식)이라 한다,
조건부 표현식은 조건문이 참일 경우 수행할 코드 if 조건문 else 거짓일 경우 수행할 코드 형태로 작성한다.

 

if문을 간결하게 작성하는 위의 두 방법은 코드를 몇 줄 줄일 수 있는 장점이 있지만 초보자에겐 추천하지 않는다.

코딩을 능숙하게 하는 사람이 아니라면 if문의 기본 구조를 익히는 데에 시간을 더 할애하는 것이 좋고, 코드를 짧게 줄인다고 해서 가독성이 더 좋아지는 것도 아니기 때문에 전통적인 방법으로 if문을 연습하는 것을 권장한다.

 

다양한 조건 주기 - elif

if문 안의 if문

present_time = 16

if present_time < 9:
    print('출근 안 함')
else:
    if present_time < 18:
        print('근무 중')
    else:
        print('퇴근')
#결과 출력
근무 중

위 예문처럼 if문 안에 if문을 또 사용할 수 있다.

위 코드는 현재 시각을 받아 9시가 넘지 않았으면 '출근 안 함'을 출력하고 그렇지 않으면 else문을 실행한다..

present_time이 9보다 크기가 그다음 else문을 실행하고 다음 if문에서 present_time이 18보다 작은지 판별한다.

present_time이 16이기 때문에 if문은 '근무 중'을 출력한다.

위와 같이 조건이 많으면 if문을 여러 번 사용해서 처리하면 되지만 elif를 사용하면 더욱 편하게 문장을 작성할 수 있다.

 

elif로 다양한 조건 주기

present_time = 16

if present_time < 9:
    print('출근 안 함')
elif present_time < 18: # if문의 조건 충족이 안 될시 조건문 실행
    print('근무 중')
else:  # elif문의 조건 충족이 안 될시 조건문 실행
    print('퇴근')
#결과 출력
근무 중

앞서 봤던 중복된 if문을 elif문으로 표현하면 훨씬 간결하게 표현할 수 있다.

if문의 조건이 충족되지 않을 경우 elif의 조건문을 판별하고, elif의 조건이 충족되지 않을 경우 else문을 실행한다.

 

present_time = 21

if present_time < 9:
    print('출근 안 함')
elif present_time < 18:
    print('근무 중')
elif present_time < 22:
    print('퇴근')
else:
    print('수면 중')
#결과 출력
퇴근

elif문을 횟수에 제한 없이 여러 번 사용할 수도 있다.

위 코드와 if문의 조건이 충족되지 않으면 elif문의 조건을 판별하고 elif문의 조건도 충족되지 않으면 다음 elif의 조건을 판별한다.

위 코드를 if문으로만 작성한다면 여러 번의 들여쓰기로 해야 하는 반면, elif문을 사용하면 간결하고 깔끔하게 표현이 된다.

 

if문에서 아무 것도 하지 않고 건너뛰기 - pass

pass로 if문 건너뛰기

thief_gun = True

if thief_gun:
    pass
else:
    print('Fight!')
#결과 출력

pass를 사용하면 아무 것도 하지 않고 if문을 건너뛸 수 있다.

집에 침입한 도둑이 총을 지니고 있을 때는 가만히 있고, 없으면 싸우라는 코드를 작성해보자.

thief_gun이 True이기 때문에 if문이 실행되었지만 pass때문에 아무 결과를 출력하지 않는다.

 

thief_gun = True
thief_knife = False

if thief_gun or thief_knife: # 문법 에러 발생
else:
    print('Fight!')

위 코드를 작성해서 실행해보자. 만약 if문에서 아무 것도 하지 않기 위해 pass를 사용하지 않고 아무 코드도 작성하지 않는다면 에러가 발생한다.

pass는 프로그램에서 예외사항을 처리하는 등 여러 방면으로 유용하게 활용되니 꼭 기억해두자.

 

 

 

 

2022.10.04 - [파이썬/기초 문법] - [Python]불(bool) 자료형 - bool 함수로 참(True) & 거짓(False) 판별하기

 

반응형

댓글