파이썬 교육 챕터 16 조건문 If

조건문(Conditional Statement): if (기본 구조와 활용)

1. 서론: 프로그램의 의사결정, 조건문

우리가 일상생활에서 수많은 결정을 내리듯이, 프로그램도 특정 조건에 따라 다른 동작을 수행해야 할 때가 있습니다. 예를 들어, 사용자가 입력한 비밀번호가 맞으면 로그인을 허용하고, 틀리면 오류 메시지를 보여주는 것과 같은 상황이죠. 이처럼 프로그램이 특정 조건을 평가하고, 그 결과(참 또는 거짓)에 따라 다른 코드 블록을 실행하도록 제어하는 문법을 ‘조건문(Conditional Statement)’이라고 합니다. 파이썬에서 가장 기본적인 조건문은 if 문입니다. if 문은 주어진 조건이 True일 때만 특정 코드를 실행하도록 합니다. 이 챕터에서는 if 문의 기본 구조와 다양한 활용법에 대해 깊이 있게 알아보겠습니다. 조건문을 이해하고 활용하는 것은 여러분의 파이썬 프로그램에 논리적인 판단 능력을 부여하고, 더욱 유연하고 지능적인 프로그램을 만드는 데 필수적인 첫걸음이 될 것입니다.

2. if 문의 기본 구조

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

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

설명:

  • if: 조건문의 시작을 알리는 키워드입니다.
  • 조건식: True 또는 False로 평가될 수 있는 표현식입니다. 주로 비교 연산자(==, !=, >, <, >=, <=)나 논리 연산자(and, or, not)를 사용하여 작성됩니다.
  • : (콜론): 조건식 뒤에는 반드시 콜론을 붙여야 합니다.
  • 코드 블록: 콜론 뒤에 오는 코드들은 반드시 들여쓰기(Indentation)를 해야 합니다. 파이썬은 들여쓰기를 통해 코드 블록을 구분하므로, 들여쓰기 규칙을 정확히 지키는 것이 매우 중요합니다. 일반적으로 공백 4칸을 사용합니다.

예시:

age = 20

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

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

# 출력:
# 성인입니다.
# 투표할 수 있습니다.
# 프로그램 종료.

위 예시에서 age >= 18이라는 조건식은 20 >= 18이므로 True로 평가됩니다. 따라서 if 문 아래에 들여쓰기 된 두 줄의 print() 문이 실행됩니다. 만약 age15였다면 조건식은 False가 되어 if 문 안의 코드는 실행되지 않고, 바로 "프로그램 종료."가 출력될 것입니다.

3. if 문 활용 예시

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

3.1. 숫자 비교

score = 75

if score >= 60:
    print("합격입니다!")

# 출력: 합격입니다!

# 다른 예시
temperature = 28

if temperature > 25:
    print("날씨가 덥습니다.")

if temperature < 10:
    print("날씨가 춥습니다.")

# 출력: 날씨가 덥습니다.

3.2. 문자열 비교

user_input = input("좋아하는 과일을 입력하세요: ")

if user_input == "apple":
    print("사과를 좋아하시는군요!")

if user_input != "banana":
    print("바나나는 아니군요.")

# 사용자가 'apple'을 입력하면:
# 출력: 사과를 좋아하시는군요!
# 출력: 바나나는 아니군요.

# 사용자가 'banana'를 입력하면:
# 출력: 바나나는 아니군요.

3.3. 불리언 값 직접 사용

조건식은 이미 True 또는 False 값을 가지고 있는 불리언 변수나 표현식일 수도 있습니다.

is_logged_in = True

if is_logged_in:
    print("환영합니다, 사용자님!")

# 출력: 환영합니다, 사용자님!

# 다른 예시: not 연산자와 함께 사용
has_item = False

if not has_item:
    print("아이템이 없습니다.")

# 출력: 아이템이 없습니다.

3.4. input() 함수와 함께 사용

사용자로부터 입력을 받아 조건에 따라 다른 메시지를 출력하는 프로그램을 만들 수 있습니다.

user_age_str = input("당신의 나이를 입력하세요: ")
user_age = int(user_age_str) # 문자열을 정수로 변환

if user_age >= 20:
    print("당신은 성인입니다.")

if user_age < 20:
    print("당신은 미성년자입니다.")

# 사용자가 25를 입력하면:
# 출력: 당신은 성인입니다.

# 사용자가 15를 입력하면:
# 출력: 당신은 미성년자입니다.

4. if 문과 불리언의 진실성/거짓성 (Truthiness/Falsiness)

이전 챕터에서 파이썬의 모든 값은 불리언처럼 True 또는 False로 간주될 수 있다고 배웠습니다. 이 개념은 if 문에서 매우 유용하게 사용됩니다.

  • False로 간주되는 값 (Falsy Values): None, False, 숫자 0, 빈 문자열(""), 빈 리스트([]), 빈 튜플(()), 빈 딕셔너리({}), 빈 셋(set()) 등
  • True로 간주되는 값 (Truthy Values): 위의 False로 간주되는 값을 제외한 모든 값
# 빈 문자열은 False로 간주됩니다.
name = ""
if name:
    print("이름이 입력되었습니다.")
else:
    print("이름이 입력되지 않았습니다.")
# 출력: 이름이 입력되지 않았습니다.

# 0은 False로 간주됩니다.
count = 0
if count:
    print("개수가 0이 아닙니다.")
else:
    print("개수가 0입니다.")
# 출력: 개수가 0입니다.

# 비어있지 않은 리스트는 True로 간주됩니다.
my_list = [1, 2, 3]
if my_list:
    print("리스트에 요소가 있습니다.")
else:
    print("리스트가 비어있습니다.")
# 출력: 리스트에 요소가 있습니다.

이러한 특성을 활용하면 코드를 더 간결하게 작성할 수 있습니다.

5. 중첩 if

if 문 안에 또 다른 if 문을 포함하여 더 복잡한 조건을 처리할 수 있습니다. 이를 ‘중첩 if 문(Nested if statement)’이라고 합니다. 중첩 if 문을 사용할 때는 들여쓰기 레벨에 주의해야 합니다.

age = 25
has_license = True

if age >= 18:
    print("성인입니다.")
    if has_license:
        print("운전면허가 있습니다. 운전 가능합니다.")
    else:
        print("운전면허가 없습니다. 운전 불가능합니다.")
else:
    print("미성년자입니다.")

# 출력:
# 성인입니다.
# 운전면허가 있습니다. 운전 가능합니다.

중첩 if 문은 특정 조건이 만족된 후에만 다음 조건을 검사해야 할 때 유용합니다. 하지만 너무 깊게 중첩되면 코드의 가독성이 떨어질 수 있으므로, 적절히 사용하는 것이 중요합니다.

6. 결론: 프로그램에 논리적 판단력을 부여하다

이 챕터를 통해 여러분은 파이썬의 가장 기본적인 조건문인 if 문의 기본 구조와 다양한 활용법을 익혔습니다. 조건식을 통해 True 또는 False를 판단하고, 그 결과에 따라 특정 코드 블록을 실행하는 원리를 이해했습니다. 또한, 불리언의 진실성/거짓성 개념을 활용하여 코드를 더 간결하게 작성하는 방법과, 중첩 if 문을 통해 복잡한 조건을 처리하는 방법까지 살펴보았습니다.

if 문은 프로그램의 흐름을 제어하는 데 있어 가장 기본적인 도구이며, 여러분이 만들 모든 프로그램에서 필수적으로 사용될 것입니다. 사용자 입력에 따라 다른 반응을 보이거나, 특정 데이터의 유효성을 검사하거나, 게임에서 특정 조건이 만족되었을 때 이벤트를 발생시키는 등 무궁무진한 활용 가능성을 가지고 있습니다.

이제 여러분은 파이썬 프로그램에 논리적인 판단 능력을 부여할 수 있게 되었습니다. 다음 챕터에서는 if 문을 확장하여 elseelif를 사용하여 더 다양한 조건 분기를 처리하는 방법을 배우게 될 것입니다. 오늘 배운 if 문을 활용하여 다양한 조건 판단 프로그램을 직접 만들어 보면서, 여러분의 파이썬 실력을 더욱 단단하게 다지세요!

파이썬 교육 챕터 16 조건문 If