if문
1. if문 정의
if 문은 프로그램에서 조건에 따라 실행해야 하는 내용이 다를 때 사용하는 문법입니다. 가령 자동차에서 기어를 변속할 때 엔진의 RPM이 3000이상이고 차속이 20kph 이상이면 기어 단 수를 하나 높이라던지, 엑셀페달이 갑자기 높아지면 기어 단수를 2개 낮춰라 등 특정 조건에서의 동작을 지정할 때 사용합니다.
자세한 설명에 앞서 간단한 if문 하나를 작성해 봅시다. funcion 이라는 변수가 1일 때는 a, b 두 변수에 할당된 값을 더하고, 그 외에는 곱하는 코드를 작성한다고 해봅시다. 먼저 a, b, function에 필요한 값을 선언하고, function이 1일 경우에 실행할 문장, 그리고 1이 아닐 경우에 실행할 문장을 작성해줍니다.
a = 3
b = 5
function = 1
if function == 1:
print(a+b)
else:
print(a*b)
이를 코드로 표현하면 위와 같습니다. function에 1을 입력하였기 때문에 이 코드의 결과는 8입니다. 만약 function에 다른 값을 입력했다면 15가 출력됩니다.
2. if 문의 구조
그럼 if문의 좀 더 상세한 구조에 대해 알아봅시다.
if conditional_statement :
statement_to_execute
statement_to_execute
else :
statement_to_execute
statement_to_execute
if문은 if로 시작합니다. 그리고 조건을 입력한 뒤에 콜론 ( : ) 을 붙입니다. 콜론에는 특별한 의미가 있는 것은 아니며, 파이썬의 문법 구조입니다. 앞으로 설명드릴 while, def 등에서도 콜론을 계속 사용하게 됩니다. 콜론의 다음줄에는 실행할 문장이 들어가는데 띄어쓰기가 있는 것을 볼 수 있습니다. 띄어쓰기는 공백문자(space) 4개로 하는 경우, 탭(tab)으로 하는 경우 둘 다 존재합니다. 어느 쪽을 써도 상관은 없지만 코드 내에서 하나로 통일하는 것을 추천합니다. if 뒤에 있는 조건문은 참과 거짓을 판단하는 문장입니다. if 다음의 문장이 참일 경우에는 if 문 다음의 문장이 실행이 됩니다. 그리고 만약 이 문장이 참이 아니라면 else 문 다음의 문장이 실행이 됩니다.
3. 조건문
파이썬의 조건문에서 주로 사용하는 연산자를 보면 아래와 같습니다. 두 값의 관계를 비교 할 수도 있고, 특정 값이 특정 리스트, 튜플 또는 문자열에 존재하는지를 이용할 수도 있습니다.
| 연산자 | 설명 |
| a < b ( a > b) | a가 b 보다 작다 (a가 b보다 크다) |
| a == b | a와 b가 같다 |
| a != b | a와 b가 같지 않다 |
| a >= b ( a <= b) | a가 b보다 크거나 같다 (a가 b보다 작거나 같다) |
| a or b | a, b 둘 중 하나만 true 여도 true 이다. |
| a and b | a, b 둘 다 true 여야 true 이다 |
| not a | a가 거짓이면 true 이다 |
| a in b | a가 b(리스트, 튜플, 문자열)에 있으면 true 이다. |
| a not in b | a가 b(리스트, 튜플, 문자열)에 없으면 true 이다. |
a = 3
b = 5
c = 5
d = [3, 5, 7]
print(a<b)
print(a>b)
print(a==b)
print(a in d)
True
False
False
True
4. 다양한 조건 반영하기
조건문 하나의 참 거짓을 판단하는 경우에 대해 배웠습니다. 그럼 조건이 많아지는 경우에 대해 고민해봅시다. 앞서 funcion 이라는 변수가 1일 때는 a, b 두 변수에 할당된 값을 더하고, 그 외에는 곱하는 코드를 작성했는데, 이 코드를 아래와 같은 조건으로 수정해봅시다.
>> funcion 이라는 변수가 1일 때는 a, b 두 변수에 할당된 값을 더하고, function의 값이 1이 아닌 경우, a가 3이라면 a를 출력하고, a가 3이 아닌 경우에는 b를 출력
지금까지 배운 if / else 로 위의 조건을 표현하면 아래와 같습니다. else 안에 다시 if / else가 분기되어 가독성이 좋지 않은 것을 볼 수 있습니다. 파이썬에서는 이러한 다중 조건을 처리하기 위해 elif 를 제공하고 있습니다.
a = 3
b = 5
function = 2
if function == 1:
print(a+b)
else:
if a == 3:
print(a)
else:
print(b)
elif 를 이용해 코드를 수정하면 아래와 같습니다.
a = 3
b = 5
function = 2
if function == 1:
print(a+b)
elif a == 3:
print(a)
else:
print(b)
먼저 if 문을 판단하고 거짓일 경우에는 elif 문의 참, 거짓을 판단합니다. 그리고 elif 문도 거짓일 경우에는 else 문을 실행합니다. 만약 if, elif 문 모두 참일 경우에는 어떻게 될까요. if elif 문은 순서대로 실행됩니다. 따라서 제일 처음 참을 만족하는 조건만 실행하게 됩니다.