🐍 Python/🐍 기초 문법

[기초문법 4강] 조건문 (if, elif, else) 완벽 가이드

itstory(Booho) 2025. 1. 19. 16:34
728x90

2025.01.18 - [🐍 Python/🐍 기초 문법] - [기초문법 3강] 파이썬 연산자와 표현식, 기본부터 실습까지

 

[기초문법 3강] 파이썬 연산자와 표현식, 기본부터 실습까지

2025.01.17 - [🐍 Python/🐍 기초 문법] - [기초문법 2강] 파이썬 변수와 데이터 타입, 기초부터 제대로 배우기 [기초문법 2강] 파이썬 변수와 데이터 타입, 기초부터 제대로 배우기파이썬(Python)은 배

boohoday.com

 

목차


1. 조건문이란?{#section1}

조건문의 개념

프로그래밍에서 조건문(Conditional Statement)은 특정 조건이 충족될 때 실행되는 코드 블록을 의미합니다.
즉, 어떤 상황이 참(True)일 때 실행하고, 거짓(False)일 경우 실행되지 않도록 제어하는 구조입니다.

 

조건문의 필요성

조건문이 없다면, 프로그램은 항상 같은 방식으로 실행되므로 사용자 입력이나 특정 상황에 따라 달라지는 동적인 프로그램을 만들 수 없습니다.
예를 들어, 로그인 시스템, 게임의 점수 판별, 쇼핑몰 할인 적용 등에서 조건문이 필수적으로 사용됩니다.

조건문이 없다면?

print("로그인 성공!")  # 항상 실행됨 (비밀번호 검증 불가능)

 

조건문을 사용하면?

password = input("비밀번호를 입력하세요: ")

if password == "1234":
    print("로그인 성공!")
else:
    print("비밀번호가 틀렸습니다.")

 

 

조건문의 기본 구조

파이썬에서 조건문은 if, elif, else 세 가지 키워드로 이루어집니다.
기본적인 흐름은 다음과 같습니다.

 

조건문 기본 형태

if 조건:
    # 조건이 참(True)일 때 실행될 코드
elif 조건:
    # 첫 번째 조건이 거짓(False)이고, 두 번째 조건이 참(True)일 때 실행될 코드
else:
    # 위의 모든 조건이 거짓(False)일 때 실행될 코드

 

if는 필수이며, elif, else는 선택적으로 사용할 수 있습니다.
들여쓰기(Indentation)가 중요합니다! (들여쓰기를 하지 않으면 오류 발생)


2. if문 기본 구조

if문이란?

if 문은 가장 기본적인 조건문이며, 특정 조건이 참(True)일 때 코드 블록을 실행하는 구조입니다.

 

기본 구조

if 조건:
    실행할 코드

 

예제: 숫자가 양수인지 확인

number = 10

if number > 0:
    print("양수입니다.")

 

if문의 실행 흐름

조건문이 실행될 때, Python은 조건을 평가한 후 True일 경우 코드 블록을 실행합니다.

조건문 실행 흐름 예제

x = 5

if x > 0:
    print("x는 0보다 큽니다.")
    print("조건이 참이므로 실행됩니다.")

 

조건이 거짓일 경우 실행되지 않는 예제

x = -3

if x > 0:
    print("이 메시지는 출력되지 않습니다.")

3. if-else 문

if-else란?

if-else 문은 조건이 참(True)일 때 실행할 코드와, 거짓(False)일 때 실행할 코드를 구분할 때 사용됩니다.

 

기본 구조

if 조건:
    실행할 코드 (조건이 참일 경우)
else:
    실행할 코드 (조건이 거짓일 경우)

 

예제: 짝수와 홀수 판별하기

number = int(input("숫자를 입력하세요: "))

if number % 2 == 0:
    print("짝수입니다.")
else:
    print("홀수입니다.")

if-else 실행 흐름

조건이 참(True)일 경우 if 블록의 코드가 실행되고, 거짓(False)일 경우 else 블록의 코드가 실행됩니다.

 

예제: 나이에 따른 성인 여부 판별

age = int(input("나이를 입력하세요: "))

if age >= 18:
    print("성인입니다.")
else:
    print("미성년자입니다.")

4. if-elif-else 문

if-elif-else란?

if-elif-else 문은 여러 개의 조건을 평가할 때 사용합니다. if 문만 사용할 경우 여러 조건을 따로 검사해야 하지만, elif 문을 사용하면 한 번에 여러 조건을 평가할 수 있습니다.

 

기본 구조

if 조건1:
    실행할 코드 (조건1이 참일 경우)
elif 조건2:
    실행할 코드 (조건1이 거짓이고, 조건2가 참일 경우)
else:
    실행할 코드 (위의 모든 조건이 거짓일 경우)

 

예제: 성적에 따른 등급 부여하기

score = int(input("점수를 입력하세요: "))

if score >= 90:
    print("A 학점")
elif score >= 80:
    print("B 학점")
elif score >= 70:
    print("C 학점")
elif score >= 60:
    print("D 학점")
else:
    print("F 학점")

if-elif-else 실행 흐름

if 문이 먼저 실행되며, 조건이 참(True)일 경우 해당 블록의 코드만 실행됩니다. 그렇지 않을 경우 elif 문을 차례대로 검사하며, 하나의 elif 조건이 참이면 실행 후 종료됩니다.

 

예제: 시간대에 따라 다른 인사말 출력하기

hour = int(input("현재 시간을 입력하세요 (0-23): "))

if hour < 12:
    print("좋은 아침입니다!")
elif hour < 18:
    print("좋은 오후입니다!")
else:
    print("좋은 저녁입니다!")

if-elif-else 문을 사용하면 여러 개의 조건을 깔끔하게 처리할 수 있습니다.


반응형

5. 조건문과 비교 연산자

비교 연산자의 개념

비교 연산자는 두 개의 값을 비교하고 그 결과를 True(참) 또는 False(거짓)로 반환하는 연산자입니다. 조건문에서 주로 사용되며, 프로그램의 흐름을 제어하는 핵심 요소입니다.

주요 비교 연산자

연산자 의미 예제 결과
== 두 값이 같은지 비교 5 == 5 True
!= 두 값이 다른지 비교 5 != 3 True
> 왼쪽 값이 더 큰지 비교 7 > 3 True
< 왼쪽 값이 더 작은지 비교 2 < 5 True
>= 왼쪽 값이 크거나 같은지 비교 5 >= 5 True
<= 왼쪽 값이 작거나 같은지 비교 3 <= 5 True

 

비교 연산자를 활용한 조건문 예제

예제: 숫자가 양수, 음수 또는 0인지 판별

num = int(input("숫자를 입력하세요: "))

if num > 0:
    print("양수입니다.")
elif num < 0:
    print("음수입니다.")
else:
    print("0입니다.")

 

비교 연산자와 함께 조건문을 사용하는 예제

예제: 나이에 따른 영화 관람 가능 여부 판별

age = int(input("나이를 입력하세요: "))

if age >= 18:
    print("성인 영화 관람이 가능합니다.")
else:
    print("성인 영화 관람이 불가능합니다.")

비교 연산자는 조건문에서 자주 사용되며, 프로그램의 흐름을 제어하는 데 필수적인 요소입니다.


6. 논리 연산자와 조건문

논리 연산자의 개념

논리 연산자는 여러 개의 조건을 조합하여 하나의 복합적인 조건을 만들 때 사용됩니다. 조건문과 함께 사용되며, 결과는 True(참) 또는 False(거짓)로 반환됩니다.

주요 논리 연산자

연산자  의미  예제  결과
and 모든 조건이 참이면 참 (5 > 3) and (10 > 5) True
or 하나라도 참이면 참 (5 > 3) or (10 < 5) True
not 참을 거짓으로, 거짓을 참으로 반전 not (5 > 3) False

 

논리 연산자를 활용한 조건문 예제

예제: 나이가 18세 이상이고, 학생증이 있는 경우 영화 할인 가능

age = int(input("나이를 입력하세요: "))
has_student_id = input("학생증이 있습니까? (y/n): ")

if age >= 18 and has_student_id == "y":
    print("영화 할인 적용 가능합니다.")
else:
    print("영화 할인 적용이 불가능합니다.")

 

논리 연산자와 함께 조건문을 사용하는 예제

예제: 비밀번호가 맞거나, 관리자 모드일 경우 로그인 허용

password = input("비밀번호를 입력하세요: ")
is_admin = input("관리자 모드입니까? (y/n): ")

if password == "secure123" or is_admin == "y":
    print("로그인 성공!")
else:
    print("로그인 실패. 다시 시도하세요.")

논리 연산자는 여러 개의 조건을 동시에 체크할 때 필수적으로 사용되며, 보다 유연한 조건문을 작성할 수 있도록 도와줍니다.


7. 중첩 조건문

중첩 조건문의 개념

중첩 조건문(Nested Conditional Statements)은 조건문 안에 또 다른 조건문이 포함된 형태를 의미합니다. 즉, 한 조건이 참(True)일 때 다시 또 다른 조건을 검사하는 구조입니다.

중첩 조건문의 기본 구조

if 조건1:
    if 조건2:
        실행할 코드 (조건1과 조건2 모두 참일 경우)
    else:
        실행할 코드 (조건1이 참이고, 조건2가 거짓일 경우)
else:
    실행할 코드 (조건1이 거짓일 경우)

중첩 조건문을 활용한 예제

예제: 나이에 따른 영화 관람 가능 여부 (청소년 보호법 적용)

age = int(input("나이를 입력하세요: "))

if age >= 18:
    print("성인 영화 관람이 가능합니다.")
else:
    if age >= 15:
        print("15세 이상 관람가 영화만 볼 수 있습니다.")
    else:
        print("모든 성인 영화 관람이 불가능합니다.")

중첩 조건문을 사용할 때 주의할 점

  1. 들여쓰기(Indentation) 유지:
    • 파이썬에서는 들여쓰기가 중요하므로, 중첩될수록 가독성이 떨어지지 않도록 주의해야 합니다.
  2. 불필요한 중첩 피하기:
    • 너무 깊게 중첩되면 코드가 복잡해질 수 있으므로, elif를 활용하거나 논리 연산자를 사용하는 것이 더 깔끔할 수도 있습니다.

중첩 조건문을 개선한 예제

위의 예제는 다음과 같이 elif를 사용하여 더 깔끔하게 만들 수도 있습니다.

age = int(input("나이를 입력하세요: "))

if age >= 18:
    print("성인 영화 관람이 가능합니다.")
elif age >= 15:
    print("15세 이상 관람가 영화만 볼 수 있습니다.")
else:
    print("모든 성인 영화 관람이 불가능합니다.")

중첩 조건문은 특정 상황에서 유용하게 사용되지만, 코드가 너무 깊게 중첩되지 않도록 주의하는 것이 중요합니다.


8. 조건문을 활용한 실전 예제

실전 예제 1: 사용자 입력을 받아 특정 조건에 따라 메시지 출력

사용자로부터 입력을 받아 특정 조건에 따라 적절한 메시지를 출력하는 프로그램을 만들어 보겠습니다.

name = input("이름을 입력하세요: ")
age = int(input("나이를 입력하세요: "))

if age >= 18:
    print(f"{name}님, 성인입니다. 환영합니다!")
elif age >= 13:
    print(f"{name}님, 청소년입니다. 일부 콘텐츠는 제한될 수 있습니다.")
else:
    print(f"{name}님, 어린이입니다. 보호자의 동반이 필요합니다.")

 

실전 예제 2: 나이에 따른 요금 계산 프로그램

이제 나이에 따라 다른 요금을 부과하는 프로그램을 만들어 보겠습니다.

age = int(input("나이를 입력하세요: "))

if age < 5:
    price = 0  # 무료
elif age < 18:
    price = 5000  # 청소년 요금
elif age < 65:
    price = 10000  # 성인 요금
else:
    price = 7000  # 노인 할인 요금

print(f"입장료는 {price}원입니다.")

 

실전 예제 3: 간단한 로그인 시스템 구현

사용자로부터 아이디와 비밀번호를 입력받아 로그인 여부를 판별하는 프로그램을 만들어 보겠습니다.

USER_ID = "admin"
USER_PASSWORD = "password123"

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

if id_input == USER_ID and pw_input == USER_PASSWORD:
    print("로그인 성공!")
else:
    print("아이디 또는 비밀번호가 잘못되었습니다.")

이와 같이 조건문을 활용하면 다양한 프로그램의 로직을 쉽게 구현할 수 있습니다.


9. 조건문과 리스트, 딕셔너리 활용

리스트에서 특정 값 포함 여부 확인하기

리스트를 활용하면 여러 개의 값을 한 번에 저장하고, 특정 값이 리스트에 존재하는지 쉽게 확인할 수 있습니다.

 

예제: 특정 과목을 수강하는지 확인

subjects = ["수학", "영어", "과학", "국어"]

subject = input("수강하려는 과목을 입력하세요: ")

if subject in subjects:
    print(f"{subject} 과목을 수강할 수 있습니다.")
else:
    print(f"{subject} 과목은 개설되지 않았습니다.")

 

딕셔너리를 활용한 조건문

딕셔너리는 키(Key)와 값(Value)으로 이루어진 데이터 구조이며, 특정 키가 존재하는지 확인할 때 유용합니다.

 

예제: 사용자 역할 확인

users = {"admin": "관리자", "user1": "일반 사용자", "guest": "게스트"}

user_id = input("아이디를 입력하세요: ")

if user_id in users:
    print(f"{user_id}님의 역할은 {users[user_id]}입니다.")
else:
    print("등록되지 않은 사용자입니다.")

리스트와 조건문을 활용한 예제

예제: VIP 고객 확인

vip_customers = ["김철수", "이영희", "박지훈"]

customer = input("고객님의 성함을 입력하세요: ")

if customer in vip_customers:
    print(f"{customer}님은 VIP 고객입니다. 특별 할인을 적용해 드립니다.")
else:
    print(f"{customer}님은 일반 고객입니다.")

리스트와 딕셔너리를 활용하면 데이터를 효과적으로 관리할 수 있으며, 조건문과 함께 사용하면 다양한 로직을 쉽게 구현할 수 있습니다.


10. 정리 및 요약

조건문의 핵심 개념 요약

  1. if문: 조건이 참(True)일 때 실행되는 기본적인 조건문
  2. if-else문: 조건이 참이면 실행하고, 거짓이면 다른 코드 실행
  3. if-elif-else문: 여러 개의 조건을 평가하고, 해당하는 첫 번째 조건 실행
  4. 비교 연산자: ==, !=, >, <, >=, <= 등을 사용하여 값 비교
  5. 논리 연산자: and, or, not을 사용하여 복합적인 조건 구성
  6. 중첩 조건문: 조건문 안에 또 다른 조건문을 포함하여 실행 흐름 제어
  7. 리스트와 딕셔너리 활용: in 연산자를 사용하여 특정 값 포함 여부 확인

실전에서 조건문을 어떻게 활용할까?

  • 사용자 입력을 기반으로 다양한 반응 구현 (예: 로그인 시스템)
  • 상품 할인, VIP 혜택 제공 등의 로직 처리
  • 데이터 필터링 및 분류 알고리즘 작성
  • 게임 개발에서 조건을 기반으로 한 이벤트 처리

추가 학습 추천

  • 반복문과 조건문을 함께 활용하는 방법
  • 조건문을 활용한 실전 프로젝트 (간단한 챗봇, 자동화 프로그램)
  • 예외 처리와 함께 조건문을 사용하는 방법
728x90
반응형