본문 바로가기

파이썬 조건문: 제어 흐름과 논리

발견의끝 2024. 11. 29.

파이썬에서 제어 흐름과 논리는 프로그램의 실행 흐름을 제어하는 데 매우 중요한 역할을 합니다. 제어 흐름이란 코드가 위에서 아래로 단순히 실행되지 않고, 특정 조건에 따라 분기하거나 반복되도록 제어하는 것을 의미합니다. 조건문은 이러한 제어 흐름에서 핵심적인 역할을 하며, 특정 조건이 참인지 거짓인지에 따라 프로그램의 동작을 다르게 만들 수 있습니다. 이번 글에서는 파이썬의 조건문을 기본부터 배우고, 이를 활용한 다양한 예제와 연습 문제를 통해 실력을 다져 보겠습니다.

파이썬 조건문 기본 설명

파이썬에서 조건문은 if, elif, 그리고 else 키워드를 사용하여 구성됩니다. 조건문은 특정 조건이 참일 때 해당 블록의 코드를 실행하며, 조건이 거짓인 경우 다음 조건문으로 넘어갑니다. 기본적인 문법은 다음과 같습니다:

if 조건식:
    # 조건이 참일 때 실행할 코드
elif 다른 조건식:
    # 위 조건이 거짓이고, 이 조건이 참일 때 실행할 코드
else:
    # 위 모든 조건이 거짓일 때 실행할 코드

조건식의 구성

조건식은 비교 연산자 (==, !=, <, >, <=, >=)와 논리 연산자 (and, or, not)를 사용해 구성됩니다. 비교 연산자는 두 값을 비교해 참(True)이나 거짓(False)을 반환합니다. 논리 연산자는 여러 조건식을 결합하거나 반전할 때 사용됩니다.

예를 들어:

  • and: 두 조건이 모두 참일 때 참을 반환합니다.
  • or: 조건 중 하나라도 참이면 참을 반환합니다.
  • not: 조건의 참/거짓 값을 반전합니다.

예제 코드

다음은 간단한 조건문 예제입니다:

age = 20
if age >= 18:
    print("성인입니다.")
elif age >= 13:
    print("청소년입니다.")
else:
    print("어린이입니다.")

이 코드에서는 나이(age)에 따라 다른 메시지를 출력합니다. 나이가 18 이상이면 "성인입니다."가 출력되고, 그렇지 않으면서 13 이상이면 "청소년입니다."가 출력됩니다. 그 외에는 "어린이입니다."가 출력됩니다.


조건문 활용 연습 예제

아래는 조건문을 활용한 10가지 간단한 예제와 그 설명입니다.

1. 숫자 비교 프로그램

사용자로부터 두 개의 숫자를 입력받아 더 큰 숫자를 출력하는 프로그램을 작성합니다.

num1 = int(input("첫 번째 숫자를 입력하세요: "))
num2 = int(input("두 번째 숫자를 입력하세요: "))

if num1 > num2:
    print(f"더 큰 숫자는 {num1}입니다.")
elif num1 < num2:
    print(f"더 큰 숫자는 {num2}입니다.")
else:
    print("두 숫자는 같습니다.")

2. 짝수와 홀수 판별

숫자를 입력받아 짝수인지 홀수인지 판별합니다.

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

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

3. 성적 등급 계산

학생의 점수를 입력받아 등급(A, B, C, D, F)을 출력합니다.

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 등급")

4. 로그인 시스템

사용자 이름과 비밀번호를 입력받아 저장된 값과 비교합니다.

saved_username = "admin"
saved_password = "1234"

username = input("사용자 이름을 입력하세요: ")
password = input("비밀번호를 입력하세요: ")

if username == saved_username and password == saved_password:
    print("로그인 성공!")
else:
    print("로그인 실패.")

5. 윤년 판별

연도를 입력받아 윤년인지 아닌지 판별합니다.

year = int(input("연도를 입력하세요: "))

if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print("윤년입니다.")
else:
    print("윤년이 아닙니다.")

6. 숫자의 양수/음수/0 판별

입력된 숫자가 양수, 음수 또는 0인지 확인합니다.

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

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

7. 최대값 찾기

세 개의 숫자를 입력받아 가장 큰 숫자를 출력합니다.

num1 = int(input("첫 번째 숫자를 입력하세요: "))
num2 = int(input("두 번째 숫자를 입력하세요: "))
num3 = int(input("세 번째 숫자를 입력하세요: "))

if num1 >= num2 and num1 >= num3:
    print(f"가장 큰 숫자는 {num1}입니다.")
elif num2 >= num1 and num2 >= num3:
    print(f"가장 큰 숫자는 {num2}입니다.")
else:
    print(f"가장 큰 숫자는 {num3}입니다.")

8. 할인율 계산

100,000원 이상 구매 시 10% 할인을 적용합니다.

amount = int(input("구매 금액을 입력하세요: "))

if amount >= 100000:
    discount = amount * 0.1
    final_amount = amount - discount
    print(f"할인된 금액은 {final_amount}원입니다.")
else:
    print(f"최종 금액은 {amount}원입니다.")

9. 계절 판별

월을 입력받아 해당 월의 계절을 출력합니다.

month = int(input("월을 입력하세요 (1-12): "))

if month in [12, 1, 2]:
    print("겨울입니다.")
elif month in [3, 4, 5]:
    print("봄입니다.")
elif month in [6, 7, 8]:
    print("여름입니다.")
elif month in [9, 10, 11]:
    print("가을입니다.")
else:
    print("잘못된 입력입니다.")

10. 비밀번호 확인

비밀번호를 두 번 입력받아 일치 여부를 확인합니다.

password1 = input("비밀번호를 입력하세요: ")
password2 = input("비밀번호를 다시 입력하세요: ")

if password1 == password2:
    print("비밀번호가 설정되었습니다.")
else:
    print("비밀번호가 일치하지 않습니다.")


연습 문제

  1. 입력된 세 숫자 중 중간값 찾기
  2. 특정 나이에 따른 영화 관람 등급 출력
  3. 사용자의 출생년도에 따른 띠 출력
  4. 입력된 두 시간(시, 분) 차이 계산
  5. 24시간 형식 시간을 12시간 형식으로 변환

위 문제들을 통해 조건문 활용 능력을 더욱 심화시킬 수 있습니다.

댓글