파이썬 교육 챕터 17 조건문 If Else

조건문(Conditional Statement): if-else (참/거짓에 따른 분기)

1. 서론: 양자택일의 순간, if-else

이전 챕터에서 우리는 if 문을 사용하여 특정 조건이 True일 때만 코드를 실행하는 방법을 배웠습니다. 하지만 프로그래밍에서는 조건이 True일 때뿐만 아니라, 조건이 False일 때도 특정 동작을 수행해야 하는 경우가 훨씬 많습니다. 예를 들어, 사용자가 로그인에 성공하면 환영 메시지를 보여주고, 실패하면 오류 메시지를 보여주는 것처럼, 두 가지 상황 중 하나를 선택하여 실행해야 하는 ‘양자택일’의 상황이 빈번하게 발생합니다. 이때 필요한 것이 바로 if-else 문입니다. if-else 문은 주어진 조건이 True일 때는 if 블록의 코드를 실행하고, False일 때는 else 블록의 코드를 실행하도록 프로그램의 흐름을 제어합니다. 이 챕터에서는 if-else 문의 기본 구조와 다양한 활용법에 대해 깊이 있게 알아보겠습니다. if-else 문을 마스터하는 것은 여러분의 파이썬 프로그램에 더욱 정교한 논리적 판단 능력을 부여할 것입니다.

2. if-else 문의 기본 구조

if-else 문은 다음과 같은 기본 구조를 가집니다.

if 조건식:
    # 조건식이 True일 때 실행될 코드 블록
    # (반드시 들여쓰기 해야 합니다)
else:
    # 조건식이 False일 때 실행될 코드 블록
    # (반드시 들여쓰기 해야 합니다)

설명:

  • if 조건식:: 이전 챕터와 동일하게, 조건이 True인지 False인지 평가합니다.
  • else:: if 문의 조건식이 False로 평가될 때 실행될 코드 블록을 정의합니다. else 뒤에는 조건식을 작성하지 않습니다. else는 항상 if 문과 짝을 이루어 사용됩니다.
  • 코드 블록: ifelse 아래에 오는 코드들은 반드시 들여쓰기(Indentation)를 해야 합니다. 파이썬은 들여쓰기를 통해 코드 블록을 구분하므로, 들여쓰기 규칙을 정확히 지키는 것이 매우 중요합니다.

예시:

age = 15

if age >= 18:
    print("성인입니다.")
    print("투표할 수 있습니다.")
else:
    print("미성년자입니다.")
    print("투표할 수 없습니다.")

print("프로그램 종료.")

# 출력:
# 미성년자입니다.
# 투표할 수 없습니다.
# 프로그램 종료.

위 예시에서 age >= 18이라는 조건식은 15 >= 18이므로 False로 평가됩니다. 따라서 if 블록은 건너뛰고 else 블록 아래에 들여쓰기 된 두 줄의 print() 문이 실행됩니다.

3. if-else 문 활용 예시

다양한 상황에서 if-else 문을 어떻게 활용할 수 있는지 살펴보겠습니다.

3.1. 홀수/짝수 판별

숫자가 홀수인지 짝수인지 판별하는 것은 if-else 문의 전형적인 예시입니다. 나머지 연산자(%)를 사용합니다.

number = 7

if number % 2 == 0:
    print(f"{number}은(는) 짝수입니다.")
else:
    print(f"{number}은(는) 홀수입니다.")

# 출력: 7은(는) 홀수입니다.

number = 10
if number % 2 == 0:
    print(f"{number}은(는) 짝수입니다.")
else:
    print(f"{number}은(는) 홀수입니다.")
# 출력: 10은(는) 짝수입니다.

3.2. 로그인 성공/실패 판별

사용자로부터 아이디와 비밀번호를 입력받아 로그인 성공 여부를 판별하는 예제입니다.

correct_id = "admin"
correct_pw = "1234"

user_id = input("아이디를 입력하세요: ")
user_pw = input("비밀번호를 입력하세요: ")

if user_id == correct_id and user_pw == correct_pw:
    print("로그인 성공! 환영합니다.")
else:
    print("로그인 실패! 아이디 또는 비밀번호가 올바르지 않습니다.")

# 사용자가 admin, 1234를 입력하면: 로그인 성공!
# 사용자가 guest, 5678을 입력하면: 로그인 실패!

3.3. 양수/음수/0 판별 (간단 버전)

value = -5

if value > 0:
    print(f"{value}은(는) 양수입니다.")
else:
    print(f"{value}은(는) 양수가 아닙니다 (음수 또는 0).")

# 출력: -5은(는) 양수가 아닙니다 (음수 또는 0).

이 예제는 value가 0일 때도 else 블록이 실행됩니다. 0을 별도로 처리하려면 다음 챕터에서 배울 elif가 필요합니다.

3.4. 문자열 길이 판별

text = input("문자열을 입력하세요: ")

if len(text) > 0:
    print("문자열이 비어있지 않습니다.")
else:
    print("문자열이 비어있습니다.")

# 사용자가 아무것도 입력하지 않고 엔터 누르면: 문자열이 비어있습니다.
# 사용자가 "Hello" 입력하면: 문자열이 비어있지 않습니다.

4. 조건부 표현식 (Conditional Expression) / 삼항 연산자

if-else 문을 한 줄로 간결하게 표현할 수 있는 방법이 있습니다. 이를 ‘조건부 표현식’ 또는 다른 언어에서는 ‘삼항 연산자’라고 부릅니다.

# 기본 if-else 문
score = 70
if score >= 60:
    message = "합격"
else:
    message = "불합격"
print(message) # 출력: 합격

# 조건부 표현식 사용
score = 55
message = "합격" if score >= 60 else "불합격"
print(message) # 출력: 불합격

구조: 참일_때_값 if 조건식 else 거짓일_때_값

조건부 표현식은 코드를 매우 간결하게 만들 수 있지만, 너무 복잡한 조건에 사용하면 오히려 가독성을 해칠 수 있으므로 간단한 경우에만 사용하는 것이 좋습니다.

5. if-else 문과 들여쓰기 (Indentation)의 중요성

파이썬에서 들여쓰기는 코드 블록을 구분하는 문법적인 요소입니다. ifelse 아래에 오는 코드들은 반드시 동일한 수준으로 들여쓰기 되어야 합니다. 들여쓰기가 잘못되면 IndentationError가 발생하거나, 의도와 다르게 코드가 실행될 수 있습니다.

# 올바른 들여쓰기
if True:
    print("True 블록")
else:
    print("False 블록")

# 잘못된 들여쓰기 (IndentationError 발생)
# if True:
# print("True 블록") # 들여쓰기 오류
# else:
#     print("False 블록")

# 의도와 다른 실행 (논리적 오류)
# if True:
#     print("True 블록")
# print("이것은 if 블록 밖에 있습니다.") # 이 줄은 if 블록과 상관없이 항상 실행됩니다.
# else: # 이 else는 위의 if와 짝을 이루지 못합니다.
#     print("False 블록")

IDE(VS Code, PyCharm 등)는 들여쓰기를 자동으로 도와주므로, 이를 적극적으로 활용하는 것이 좋습니다.

6. 결론: 프로그램의 이분법적 판단 능력

이 챕터를 통해 여러분은 파이썬의 if-else 조건문의 기본 구조와 다양한 활용법을 익혔습니다. 조건식이 True일 때와 False일 때 각각 다른 코드 블록을 실행함으로써, 프로그램이 양자택일의 논리적 판단을 수행할 수 있게 되었습니다. 또한, 코드를 한 줄로 간결하게 표현할 수 있는 조건부 표현식과, 파이썬에서 들여쓰기가 얼마나 중요한 문법적 요소인지 다시 한번 강조했습니다.

if-else 문은 프로그램의 흐름을 제어하는 데 있어 if 문과 함께 가장 기본적인 도구입니다. 사용자 입력에 따라 다른 응답을 하거나, 데이터의 유효성을 검사하여 적절한 처리를 하는 등, 여러분이 만들 거의 모든 대화형 프로그램에서 필수적으로 사용될 것입니다.

이제 여러분은 파이썬 프로그램에 이분법적인 판단 능력을 부여할 수 있게 되었습니다. 다음 챕터에서는 if-else 문을 확장하여 여러 가지 조건을 순차적으로 검사하고 처리할 수 있는 if-elif-else 문에 대해 배우게 될 것입니다. 오늘 배운 if-else 문을 활용하여 다양한 상황을 가정하고 직접 프로그램을 만들어 보면서, 여러분의 파이썬 실력을 더욱 단단하게 다지세요!

파이썬 교육 챕터 17 조건문 If Else