본문 바로가기

연구노트/Python

Python 제어문(if문)

 

 

프로그램의 구조를 쌓는 if문

 

 

if문의 필요성

if문은 왜 필요할까?

다음의 문장을 판단해보자. "돈이 있으면 택시를 타고, 돈이 없으면 걸어 간다."

우리 모두에게 일어날 수 있는 상황 중 하나입니다. 프로그래밍도 사람이 하는 것이므로 위 문장처럼 조건을 판단 후 처리해야한다.

이렇듯 프로그래밍에서 조건을 판단하여 해당 조건에 맞는 상황을 수행하는 데 쓰는 것이 바로 if문이다.

 

위와 같은 상황을 파이썬에서는 다음과 같이 표현할 수 있다.

## if문 예시
money = True
if money:
    print("택시를 타고 가라")
else:
    print("걸어 가라")
→ "택시를 타고 가라"
 

 

if문의 기본구조

조건문을 테스트해서 참이면 if문 바로 다음 문장들을 수행하고, 조건문이 거짓이면 else문 다음 문장들을 수행하게 된다.

그러므로 else문은 if문 없이 독립적으로 사용할 수 없다.

 

If문은 들여쓰기가 필수적이다. "If 조건문:" 바로 아래 문장부터 if문에 속하는 모든 문장에 들여쓰기를 해주어야 한다.

또한, 들여쓰기의 너비가 다르면 'IndentationError' 가 발생하므로 일관된 너비로 들여쓰기를 해야한다.

 

조건문 다음 콜론( : )은 필수적이다. 이는 파이썬의 문법 구조이므로 다른 조건문에서도 유의하면서 작성해야 한다.

다른 언어에서는 { } 기호로 사용하지만 파이썬에서는 들여쓰기로 해결한다는 점을 기억해야 한다.

 

if문의 조건문

if의 조건문이란?

if 조건문은 주어진 '조건식'의 결과에 따라 코드 블록을 실행할지 결정하는 문장이다.

'조건식'이란 참과 거짓을 판단하는 문장을 말한다. 파이썬에서는 조건식의 결과가 Boolean 타입으로 표현된다.

Boolean은 True(참)와 False(거짓) 두 가지 값만 가지는 데이터 타입이다. 모든 조건식은 최종적으로 True 또는 False로 평가된다.

아래 예시에서 조건문은 money이며, money가 True 이므로 if문 다음의 코드 블록이 실행된다.

## if조건문 예시
money = True
if money:
 

 

if문의 연산자

if문의 비교연산자

조건문에서도 비교 연산자를가 존재하며 이를 쓰는 방법에 대해 알아보자. 아래 표는 비교 연산자는 다음과 같습니다.

비교 연산자
설명
x < y
x가 y보다 작다
x > y
x가 y보다 크다
x == y
x와 y가 같다
x != y
x와 y가 같지 않다
x >= y
x가 y보다 크거나 같다
x <= y
x가 y보다 작거나 같다

 

 

위의 표를 참고하여 비교 연산자를 사용해 보겠다.

## if조건문 연산자 예시
x = 3
y = 2
x > y
→ True
x < y
→ False
x == y
→ False
x != y
→ True
 

 

앞서 살펴본 택시 예제를 다음처럼 바꾸려면 어떻게 해야될까?

"만약 3000원 이상의 돈을 가지고 있으면 택시를 타고 그렇지 않으면 걸어 가라."

아래 예제는 'money'가 2000이고 조건인 3000보다 크거나 같지 않기 때문에 else문 다음 문장을 수행한다.

## if조건문 택시 예제
money = 2000
if money >= 3000:
    print("택시를 타고 가라")
else:
    print("걸어 가라")
...
→ '걸어 가라'
 
if문의 and, or, not

조건을 판단하기 위해 사용하는 논리 연산자로 and, or, not이 있다. 각각 연산자의 동작을 아래 표로 살펴보자.

 
연산자
설명
x or y
x와 y 둘 중에 하나만 참이어도 참이다
x and y
x와 y 모두 참이어야 참이다
not x
x가 거짓이면 참이다

 

다음 예시를 통해 or 연산자의 사용법을 알아보자.

money는 2000이지만 card가 True이므로 "money >= 3000 or card" 조건문이 참이기 때문에 if문 다음 문장을 출력한다.

## if조건문 or 연산자 예제
money = 2000
card = True
if money >= 3000 or card:
    print("택시를 타고 가라")
else:
    print("걸어 가라")
...
→ '택시를 타고 가라'
 
if문의 x in s, x not in s

더 나아가 파이썬은 '~안에' 존재 여부를 'in'을 사용하여 판단할 수 있다.

다음 표를 확인하여 종류를 파악해 보자.

 
in
not in
x in 리스트
x not in 리스트
x in 튜플
x not in 튜플
x in 문자열
x not in 문자열

 

 

다음 예제를 확인해 보자. 첫 번째 예는 '[1, 2, 3]이라는 리스트 안에 1이 있는가?' 조건문이고 1이 존재하므로 True를 반환한다.

두 번째 예는 '[1, 2, 3]이라는 리스트 안에 1이 없는가?' 조건문이고 1이 존재하므로 False를 반환한다.

## if조건문 x in s 연산자
1 in [1, 2, 3]
→ True
1 not in [1, 2, 3]
→ False
'a' in ('a', 'b', 'c')
→ True
'j' not in 'python'
→ True
 

 

이번에는 계속 사용하고 있는 택시 예제에 in을 적용해 보자.

## if조건문 택시 예제 in 사용
pocket = ['paper', 'cellphone', 'money']
if 'money' in pocket:
     print("택시를 타고 가라")
else:
     print("걸어 가라")
...
→ "택시를 타고 가라"
 

만약 조건문에서 아무 일도 하지 않게 설정하고 싶다면 'pass'를 사용하자. 다음 예제를 보면 결과값을 보여주지 않는다.

## if조건문 택시 예제 in, pass 사용
pocket = ['paper', 'cellphone', 'money']
if 'money' in pocket:
     pass
else:
     print("걸어 가라")
...
→ 
 

 

if문의 elif

다양한 조건을 판단하는 elif

if와 else만으로 문장을 표현하게 된다면 코드가 복잡하고 이해하기 어렵게 작성될 수 있는 위험이 있다.

다중 조건 판단을 가능하게 하는 elif를 사용한다. 즉 elif는 이전 조건문이 거짓일 때 추가적인 조건을 판단한다.

두 예제를 비교해보자

## if조건문 if만 사용
pocket = ['paper', 'cellphone']
card = True
if 'money' in pocket:
     print("택시를 타고 가라")
else:
     if card:
         print("택시를 타고 가라")
     else:
         print("걸어 가라")
...
→ '택시를 타고 가라'
 
## if조건문 elif 사용
pocket = ['paper', 'cellphone']
card = True
if 'money' in pocket:
     print("택시를 타고 가라")
elif card:
     print("택시를 타고 가라")
else:
     print("걸어 가라")
...
→ '택시를 타고 가라'
 

 

두 예제를 비교하면 두 번째 예제가 복잡하지 않으면서 다중 조건을 판단하는 모습을 볼 수 있다.

또한, elif는 개수에 제한 없이 사용할 수 있다.

 

if문의 조건부 표현식

파이썬의 조건부 표현식은 코드를 간단히 표현할 수 있는 장점이 있다.

또한, 가독성에 유리하고 한 줄로 작성할 수 있어 활용성이 좋다.

조건부 표현식은 "'조건문이' 참인 경우 if '조건문' else '조건문이 거짓인 경우'"과 같이 정의한다.

다음 예제를 통해 조건부 표현식을 이해해 보자.

## if조건문 예제
if score >= 60:
     message = "success"
else:
     message = "failure"
 

위의 코드는 score가 60이상일 경우 message 문자열에 "success"를, 아닐 경우에는 "failure"를 대입하는 코드이다.

파이썬의 조건부 표현식을 사용하면 위의 예제를 아래와 같이 간단하게 표현할 수 있다.

## if조건문 조건부 표현식 예제
message = "success" if score >= 60 else "failure"
 

 

이번 연구 노트에서는 Python의 제어문 중 if문을 알아보았다. if문은 프로그램의 구조를 쌓는 방법의 하나이다.

다음 연구 주제는 while문을 알아보도록 하겠다.

 

 

 

'연구노트 > Python' 카테고리의 다른 글

Python의 제어문(for문)  (0) 2025.04.11
Python 제어문(while문)  (1) 2025.04.08
Python 집합 자료형, 불 자료형  (0) 2025.04.07
Python 튜플 자료형, 딕셔너리 자료형  (0) 2025.04.07
Python 리스트 자료형  (2) 2025.04.07