Python/파이썬 기초

파이썬 조건문 사용법 : if elif else 차이, 한 줄, 조건 여러 개 예제

jimmy_AI 2022. 3. 25. 21:40
반응형

파이썬 if~elif~else문 문법 정리

안녕하세요. 이번 글에서는 파이썬에서 사용되는 조건문인 if문에 대하여

if elif else 간의 용법 차이와 실행할 코드가 한 줄일 때,

그리고 여러 개의 조건이 중첩된 케이스의 예제를 중심으로

사용되는 경우의 수를 총망라해보도록 하겠습니다.

 

 

파이썬 if문 기본 사용법

파이썬의 if문은 if 조건 :(콜론)의 세트로 사용하는 것이 기본적인 용법입니다.

 

콜론이 생략되면 오류가 발생하며, if 문 내부에서 실행될 코드 부분은 들여쓰기로 구분합니다.

### 조건이 만족되는 경우 ###
a = 6

if a > 5:
    print('a가 5보다 큽니다!')
    print('안녕하세요!')
print('hello!')

# 출력 결과
a가 5보다 큽니다!
안녕하세요!
hello!

### 조건이 만족되지 않는 경우 ###
a = 4

if a > 5:
    print('a가 5보다 큽니다!')
    print('안녕하세요!')
print('hello!')

# 출력 결과
hello!

if문 외부의 hello!가 출력되는 부분은 조건에 상관없이 출력되고 있는 점을 참고하세요.

 

 

if elif else 의미 차이, 사용법

elif와 else는 기본적으로 생략이 가능합니다.

 

다만, 이 둘은 위의 조건이 만족되지 않는 경우에 다음에 체크할 조건 부분을 분기할 수 있습니다.

 

아래는 가장 위의 if문을 만족하지 않아 아래의 elif문이 실행되는 예시입니다.

a = 6

if a > 10:
    print('a가 10보다 큽니다!')
elif a > 5:
    print('a가 10보다는 안커도 5보다는 큽니다!')
else:
    print('a가 5보다 크지 않습니다!')

# 출력 결과
a가 10보다는 안커도 5보다는 큽니다!

 

만일, a가 10보다 큰 값이 주어지면, 가장 위의 if에서 조건을 만족하므로

해당 조건문의 아래 elif, else 문은 조건도 검사하지 않으며, 실행되지 않습니다.

a = 11

if a > 10:
    print('a가 10보다 큽니다!')
elif a > 5:
    print('a가 10보다는 안커도 5보다는 큽니다!')
else:
    print('a가 5보다 크지 않습니다!')

# 출력 결과
a가 10보다 큽니다!

 

참고로, 여러 개의 elif를 사용하는 것은 얼마든지 가능하며,

가장 위의 조건부터 순차적으로 검사합니다.

a = 4

if a > 10:
    print('a가 10보다 큽니다!')
elif a > 5:
    print('a가 5보다는 큽니다!')
elif a > 3:
    print('a가 3보다는 큽니다!')
elif a > 0:
    print('a가 0보다는 큽니다!')
else:
    print('a가 0보다 크지 않습니다!')

# 출력 결과
a가 3보다는 큽니다!

 

else 내의 구문은 위의 if 혹은 elif에 있는 조건들을 모두 만족하지 않을 때 실행됩니다.

a = -1

if a > 10:
    print('a가 10보다 큽니다!')
elif a > 5:
    print('a가 5보다는 큽니다!')
elif a > 3:
    print('a가 3보다는 큽니다!')
elif a > 0:
    print('a가 0보다는 큽니다!')
else:
    print('a가 0보다 크지 않습니다!')

# 출력 결과
a가 0보다 크지 않습니다!
반응형

if ~ if와 if ~ elif 차이

간혹, if ~ if 문과 if ~ elif 문의 차이를 궁금해하시는 경우가 있습니다.

 

if ~ if문의 경우 항상 두 if문의 조건을 모두 체크하는 반면,

if ~ elif 문의 경우 앞의 if문이 만족되면 뒤의 elif 문 조건은 체크하지 않습니다.

### if ~ if 문 ###

a = 4

if a > 3:
    print('a가 3보다 큽니다!')
if a > 0:
    print('a가 0보다 큽니다!')

# 출력 결과
a가 3보다 큽니다!
a가 0보다 큽니다!

### if ~ elif 문 ###

a = 4

if a > 3:
    print('a가 3보다 큽니다!')
elif a > 0:
    print('a가 0보다 큽니다!')

# 출력 결과
a가 3보다 큽니다!

a가 0보다 큽니다!의 두 번째 조건 출력 부분은 if ~ elif에서는 실행되지 않았습니다.

 

 

조건문에서 실행될 코드 부분이 한 줄인 경우

if, elif 혹은 else문에서 실행될 코드가 1줄인 경우에는

특별히 들여쓰기 없이 바로 사용되는 것이 가능합니다.

 

다만, 이 경우에도 if 문 뒤에 오는 :(콜론)은 생략할 수 없습니다.

a = 5

if a > 10: print('a가 10보다 큽니다!')
elif a > 3: print('a가 3보다 큽니다!')
else: print('a가 3보다 크지 않습니다!')

# 출력 결과
a가 3보다 큽니다!

 

 

조건 여러 개가 중첩된 경우(if문 내에 if문)

여러 개의 조건이 중첩된 경우에도 추가 들여쓰기로 구분하여 if문 내에 다른 if문을

넣어 구문을 작성하는 것도 가능합니다.

a = 6

if a > 5:
    if a % 2 == 0:
        print('a는 5보다 큰 짝수입니다!')
    else:
        print('a는 5보다 큰 홀수입니다!')
else:
    print('a는 5보다 크지 않습니다!')

# 출력 결과
a는 5보다 큰 짝수입니다!

첫 조건인 a > 5를 만족하여 아래의 a % 2 == 0 조건을 체크하게 되었습니다.

두 번째 if 문 내에서 실행될 코드는 들여쓰기가 두 번 들어간 점에 주목해주세요.

 

마찬가지의 원리로 if문 내 실행 부분에서 for문 등의 반복문을 실행하는 것도 가능합니다.

a = 6

if a > 5:
    for i in range(3):
        print('a는 5보다 큽니다!')

# 출력 결과
a는 5보다 큽니다!
a는 5보다 큽니다!
a는 5보다 큽니다!