Python if~elif~else문 조건 분기

스폰서 링크
python post logo 파이썬
스폰서 링크

if문은 프로그램에서 다루는 정보를 판단하여 분기 처리를 하기 위해 사용됩니다. 이 글에서는 분기 처리의 이해를 돕기 위해 if문 형식과 샘플 소스의 예시를 들어 소개합니다.

참고로 소스 샘플은 [Google Colab에서 Python 코드 실행하기] 글에서 언급한 환경을 이용하면 Python 프로그램을 PC에 설치하지 않더라도 Chrome, IE, Edge Browser에서 쉽게 Python 프로그램을 실행하고 따라할 수 있습니다.

스폰서 링크

if~elif~else 문 형식

if~elif~else문 형식은 다음과 같습니다.

if 조건A:
    처리A
elif 조건B:
    처리B
else:
    처리C
처리D

if~elif~else 순서 처리도(FlowChart)

if~elif~else의 FlowChart는 다음과 같습니다.

분기 처리 설명

  • 조건A에 만족한다면 처리A를 실행하고 처리D 이후를 실행합니다.
  • 조건B에 만족한다면 처리B를 실행하고 처리D 이후를 실행합니다.
  • 조건A, 조건B 둘 다 만족하지 않는다면 처리C를 실행하고 처리D 이후를 실행합니다.

샘플 소스

다음 소스를 python_if_sample01.py 파일로 저장해서 실행합니다. 참고로 input()은 사용자의 입력을 기다리는 함수입니다.

val = input('Enter number: ')
num = int(val)
if num > 100:
    print("greater than 100")
elif num < 100:
    print("less than 100")
else:
    print("equal 100")
print("val = " + val)

실행 결과

입력 값 1의 경우

Enter number: 1
less than 100
val = 1

입력 값 101의 경우

Enter number: 101
greater than 100
val = 101

입력 값 100의 경우

Enter number: 100
equal 100
val = 100

사용자 입력 값이 문자인 경우

[Google Colab에서 Python 코드 실행하기]에서는 다음과 같은 에러가 표시됩니다.

Enter number: one
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-7-c98414e97bf9> in <module>()
      1 val = input('Enter number: ')
----> 2 num = int(val)
      3 if num > 100:
      4     print("greater than 100")
      5 elif num < 100:

ValueError: invalid literal for int() with base 10: 'one'

IDLE (Python 3.x 64-bit)에서 다음과 같은 에러가 표시됩니다.

Enter number: one
Traceback (most recent call last):
  File "D:/work/python_if_sample01.py", line 2, in <module>
    num = int(val)
ValueError: invalid literal for int() with base 10: 'one'
제목과 URL을 복사했습니다