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'