Python

if문

datathings 2025. 6. 30. 21:58

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 문은 순서대로 실행됩니다. 따라서 제일 처음 참을 만족하는 조건만 실행하게 됩니다.