[7단계] 조건을 조합해라! – and, or, not 논리 연산자 완전 정복
📌 학습 목표
두 개 이상의 조건을 논리적으로 연결하여 복잡한 판단을 내릴 수 있도록, 논리 연산자 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단계에서는 비교 연산과 논리 연산을 조합해 실제 검증 시나리오를 만들어봅니다.
로그인 검증, 접근 제한 등의 로직도 연습해볼 거예요.