조건문은 특정 조건일 때 코드를 실행하는 문법이다.'
if 조건식:
코드
x = 100
if x == 100: # x가 100과 같다면
print('100입니다.') # 이 코드를 실행하라
100입니다 # 출력
나중에 작성해야 할 코드를 표시할 때 사용할 수 있다. TODO, FIXME, BUG, NOTE 등과 같이 코드는 아니지만 일관된 주석을 사용해서 검색하면 쉽게 찾을 수 있다.
x = 100
if x == 100:
pass # TODO: if x == 10, execute somthing
파이썬은 들여쓰기가 문법으로 정해져 있어서, if조건문도 들여쓰기가 중요하다. 잘못된
x = 100
if x == 10:
print("What's in x?")
print('I guess, ten?')
What's in x?
I guess, ten?
들여쓰기는 공백 4칸을 권장한다.
프로그래밍을 하다 보면 if를 여러번 사용하는 복잡한 조건도 자주 나온다.
x = 5
if x >= 0:
print('0 이상입니다.')
if x == 5:
print('5입니다.')
if x == 10:
print('10입니다.')
들여쓰기가 된 if x ==5:와 if x == 10:은 처음에 나온 if x >= 0:에 속한 코드이고, 처음 if 조건식이 만족해야만 실행이 된다.
input을 사용해서 사용자가 입력한 값을 변수에 저장하고, if 조건문으로 값을 비교해보자
y = int(input())
if y == 10:
print('10입니다.')
if y == 20:
print('20입니다.')
10 # 입력
10입니다.
20 # 입력
20입니다.
if 조건문은 분기(branch)를 위한 문법이다. 즉, 분기는 '둘 이상으로 갈라지다'라는 뜻으로 프로그램의 흐름을 둘 이상으로 나누는 것을 말합니다.
if 조건식:
코드1
else:
코드2
else는 if의 조건식이 만족하지 않을 때 코드를 실행한다.
x = 10
if x == 15:
print('15입니다.')
else:
print('15가 아닙니다.')
else는 if와 들여쓰기 규칙이 같다
if True:
print('참') # True는 참
else:
print('거짓')
if False:
print('참')
else:
print('거짓') # False는 거짓
if None:
print('참')
else:
print('거짓') # None은 거짓
참
거짓
거짓
숫자는 정수(2진수, 10진수, 16진수), 실수와 관계없이 0이면 거짓, 0이 아닌 수는 참이다.
내용이 있을 때 참, 빈 문자열은 거짓이다.
조건이 복잡할 때는 어떻게 해야할까?
if조건문에는 논리 연산자를 사용하여 조건식을 여러 개 지정할 수 있다.
x = 1
y = 2
if x == 1 and y == 2:
print('참')
else:
print('거짓')
참
논리 연산자는 여러 조건을 판단할 때 if를 계속 나열해서 중첩 if 조건문으로 만드는 경우가 많다.
x = 10
if x > 0:
if x < 30:
print('30보다 작은 양수입니다.')
30보다 작은 양수입니다.
if x > 0 and x < 30:
print('30보다 작은 양수입니다.') # and 논리 연산자를 사용해서 if 하나로 줄일 수 있다.
if 0 < x < 30:
print('30보다 작은 양수입니다.') # 이렇게 더 간단하게 만들 수 있음.
프로그램을 만들다 보면 참, 거짓으로만 분기하는 것은 한계가 있다. 실제로는 두 가지 이상의 다양한 상황이 발생한다.
예시) 음료수 자판기
if 조건식:
코드1
elif 조건식:
코드2
x = 20
if x == 10:
print('10입니다.')
elif x == 20:
print('20입니다.')
20입니다.
if 조건식:
코드1
elif 조건식:
코드2
else 조건식:
코드3
if x == 30:
print('10입니다.')
elif x == 20:
print('20입니다.')
else:
print('10도 20도 아닙니다.')
10도 20도 아닙니다.
button = int(input())
if button == 1:
print('블랙커피')
elif button == 2:
print('설탕커피')
elif button == 3:
print('밀크커피')
elif button == 4:
print('코코아')
elif button == 5:
print('율무차')
else:
print('매진')
1
블랙커피
9
매진