[7단계] 조건을 조합해라! – and, or, not 논리 연산자 완전 정복

📌 학습 목표

두 개 이상의 조건을 논리적으로 연결하여 복잡한 판단을 내릴 수 있도록, 논리 연산자 and, or, not의 의미와 사용법을 익힙니다.

파이썬 100단계, 7단계 and, or, not
< and, or, not 이해하기 >


1. 도입 – 조건이 두 개일 때, 당신은 어떻게 판단하나요?

“이 사람, 성인이면서 학생이면 할인 적용해줄게.”
“혹은 어린이거나 노인이면 요금 할인 가능.”

이런 복합 조건, 어떻게 처리해야 할까요?

초보자일수록 여기에 많이 헷갈립니다:

“두 개 조건을 어떻게 한 줄에 넣죠?”
“조건문을 두 번 쓰면 되지 않나요?”

NO. 파이썬은 이미 강력한 연산자들을 제공합니다.
이걸 잘 활용하면, 판단 로직은 날렵해지고, 실수도 줄어듭니다.



2. 논리 연산자란 무엇인가요?

논리 연산자는 여러 조건을 하나로 조합할 수 있게 해주는 연산자입니다.

연산자 의미 예시 결과
and 둘 다 참일 때만 참 A and B A, B 모두 True일 때만 True
or 둘 중 하나라도 참이면 참 A or B A 또는 B 중 하나만 True여도 True
not 참/거짓 뒤집기 not A A가 False면 True


3. 실전 예제 – 영화관 할인 조건

조건:

  • 성인(18세 이상) & 학생 → 학생 할인
  • 13세 미만 or 65세 이상 → 복지 할인

age = int(input("나이를 입력하세요: "))
is_student = input("학생인가요? (yes/no): ") == "yes"

if age >= 18 and is_student:
    print("🎓 학생 할인 적용")
elif age < 13 or age >= 65:
    print("👶🧓 복지 할인 적용")
else:
    print("정상 요금 적용")


4. not의 활용 – 부정 조건 표현하기

예: 비회원이면 가입 유도하기


is_member = input("회원이신가요? (yes/no): ") == "yes"

if not is_member:
    print("회원 가입을 진행해주세요!")

Tip: not은 종종 예외 조건 처리나 보안 검사에도 자주 사용됩니다.



5. 실무 팁 – 논리 연산자 사용 시 실수 방지법

  • and, or를 쓸 때는 조건 전체를 괄호로 감싸는 습관을 들이세요.
  • input()으로 받은 값은 문자열이므로, 비교할 때는 정확하게 'yes', 'no' 체크 필요

if (age >= 18 and is_student):
    print("할인 적용")


6. 실전 미션 – 군인 할인 시스템

요구 조건:

  • 성인 & 군인 → 군인 할인
  • 어린이 or 노년층 → 복지 할인
  • 그 외 → 일반 요금

age = int(input("나이를 입력하세요: "))
is_soldier = input("군인이신가요? (yes/no): ") == "yes"

if age >= 18 and is_soldier:
    print("🎖️ 군인 할인 적용")
elif age < 13 or age >= 65:
    print("👶🧓 복지 할인 적용")
else:
    print("💳 일반 요금 적용")


7. 다음 단계 예고

8단계에서는 비교 연산과 논리 연산을 조합해 실제 검증 시나리오를 만들어봅니다.
로그인 검증, 접근 제한 등의 로직도 연습해볼 거예요.