본문 바로가기

[Python] 15강 논리 연산자(and, or, not)로 조건 조합하기

@도마22025. 12. 28. 21:00
728x90


이전 강의에서는 조건문 실전 예제를 통해
if / elif / else 사용 감각을 잡았습니다.
이번 강의에서는 조건을 더 복잡하게 조합할 수 있는
논리 연산자(and, or, not)를 배웁니다.


논리 연산자란 무엇인가

논리 연산자는
여러 조건을 하나의 조건처럼 묶어주는 연산자입니다.

현실로 비유하면 이런 느낌입니다.

  • 아이디도 맞고 비밀번호도 맞아야 로그인
  • 점수가 90 이상 또는 출석이 좋으면 통과
  • 성인이 아닌 경우 출입 불가

이런 판단을 코드로 만들 때
논리 연산자를 사용합니다.


1️⃣ and 연산자 (둘 다 참이어야 함)

and는
모든 조건이 참(True)일 때만 참이 됩니다.

age = 25
has_id = True

if age >= 20 and has_id == True:
    print("입장 가능합니다.")
  • 나이가 20 이상
  • 신분증이 있음

두 조건이 모두 만족해야 실행됩니다.


2️⃣ or 연산자 (하나만 참이어도 됨)

or는
조건 중 하나만 참이어도 참이 됩니다.

score = 85
attendance = 95

if score >= 90 or attendance >= 90:
    print("통과입니다.")
  • 점수가 높거나
  • 출석률이 높으면

하나만 만족해도 실행됩니다.


3️⃣ not 연산자 (결과를 반대로)

not은
조건의 결과를 반대로 뒤집습니다.

is_logged_in = False

if not is_logged_in:
    print("로그인이 필요합니다.")
  • False → True
  • True → False

“아니다”를 표현할 때 사용합니다.


4️⃣ 논리 연산자와 비교 연산자 함께 사용하기

논리 연산자는
비교 연산자와 거의 항상 함께 사용됩니다.

age = int(input("나이를 입력하세요: "))
ticket = input("티켓이 있나요? (y/n): ")

if age >= 20 and ticket == "y":
    print("입장 가능합니다.")
else:
    print("입장 불가입니다.")

조건을 사람 말처럼 읽어보면 이해가 쉬워집니다.


5️⃣ 괄호로 조건 묶기

조건이 길어질 경우
괄호를 사용하면 가독성이 좋아집니다.

score = 85
attendance = 70

if (score >= 80 and attendance >= 70) or score >= 95:
    print("합격입니다.")
  • 기본 합격 조건
  • 또는 점수가 매우 높으면 통과

이처럼
조건의 우선순위를 명확히 할 수 있습니다.


6️⃣ 실습 예제

아래 조건을 만족하는 프로그램을 만들어보세요.

  • 나이를 입력받는다
  • 회원 여부(y/n)를 입력받는다
  • 나이가 20 이상이고 회원이면 “할인 적용”
  • 아니면 “일반 요금”
age = int(input("나이를 입력하세요: "))
member = input("회원인가요? (y/n): ")

if age >= 20 and member == "y":
    print("할인 적용")
else:
    print("일반 요금")

이번 강의 핵심 정리

  • and는 모든 조건이 참일 때만 실행
  • or는 하나만 참이어도 실행
  • not은 조건 결과를 반대로 만든다
  • 논리 연산자는 조건문을 강력하게 만든다

로그인 조건을 만든다면
and / or 중 어떤 연산자를 쓰게 될까요?
이유도 함께 생각해보세요.

다음 강의에서는
중첩 if (if 안에 if) 를 배웁니다.
조건문을 단계적으로 나누는 방법을 알아봅니다.


728x90
도마2
@도마2 :: 도마의 코드노트

초보자를 위한 코딩 강의를 정리합니다. 파이썬부터 C#, Unity 게임 제작까지 차근차근 기록합니다. — 도마

목차