본문 바로가기
코딩교육/Python 초등교육에서 전문가까지

1단계 : 6. 연산과 계산 (feat. 논리 연산자 : and , or , not)

by 제리토리 2025. 1. 23.
728x90
반응형

 

Python의 논리 연산자(logical operators)는 조건을 조합하거나 반전시키는 데 사용됩니다.

조건문, 반복문 등 프로그램의 흐름을 제어할 때 필수적인 도구입니다.

이 장에서는 Python에서 사용되는 논리 연산자인 and, or, not의 동작과 활용 방법을 예제와 함께 설명합니다.

 

 

1. 논리 연산자란?

 

 

논리 연산자Boolean 값(True, False)을 다루며, 조건의 조합 또는 반전을 통해 복잡한 논리 구조를 표현합니다.

 

 

2. 논리 연산자의 종류

 

연산자 설명 예제 결과
and 두 조건이 모두 참(True)일 때만 참을 반환 True and False False
or 두 조건 중 하나라도 참(True)이면 참을 반환 True or False True
not 조건의 반대를 반환 not True False

 

 

3. 논리 연산자의 동작

 

   ㉮ and 연산자

 

      and 연산자는 **모든 조건이 참일 때만 참(True)**을 반환합니다.

 

      예제

x = 10
y = 5

print(x > 5 and y < 10)  # True (둘 다 참)
print(x > 15 and y < 10)  # False (첫 번째 조건이 거짓)

 

      활용: 모든 조건 만족 확인

age = 25
has_license = True

if age >= 18 and has_license:
    print("운전 가능합니다.")
else:
    print("운전할 수 없습니다.")

 

 

   ㉯ or 연산자

 

      or 연산자는 **하나 이상의 조건이 참이면 참(True)**을 반환합니다.

 

      예제

x = 10
y = 5

print(x > 15 or y < 10)  # True (두 번째 조건이 참)
print(x > 15 or y > 10)  # False (둘 다 거짓)

 

      활용: 최소 하나의 조건 만족 확인

is_raining = True
has_umbrella = False

if is_raining or has_umbrella:
    print("외출 가능합니다.")
else:
    print("외출할 수 없습니다.")

 

 

   ㉰ not 연산자

 

      not 연산자는 조건의 반대 값을 반환합니다.

 

      예제

is_day = True

print(not is_day)  # False
print(not False)   # True

 

      활용: 조건 반전

is_logged_in = False

if not is_logged_in:
    print("로그인이 필요합니다.")
else:
    print("환영합니다!")

 

 

 

4. 논리 연산자 활용 예제

 

 

   ㉮ 복합 조건

 

      여러 논리 연산자를 결합하여 복잡한 조건을 표현할 수 있습니다.

x = 10
y = 5
z = 20

if (x > 5 and y < 10) or z == 20:
    print("조건이 참입니다.")
else:
    print("조건이 거짓입니다.")

 

   ㉯ 사용자 입력 검증

 

      논리 연산자를 사용하여 입력 값의 유효성을 검증할 수 있습니다.

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

if age >= 0 and age <= 120:
    print("유효한 나이입니다.")
else:
    print("유효하지 않은 나이입니다.")

 

   ㉰ 로그인 확인

 

      사용자가 로그인 상태인지 확인하는 조건.

username = "Alice"
password = "password123"

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

if input_username == username and input_password == password:
    print("로그인 성공!")
else:
    print("로그인 실패!")

 

 

 

5. 논리 연산자 우선순위

 

 

Python은 논리 연산자를 평가할 때 우선순위를 따릅니다.

 

   ㉮ not: 가장 높은 우선순위

   ㉯ and: 중간 우선순위

   ㉰ or: 가장 낮은 우선순위

 

   우선순위 예제

x = True
y = False
z = True

result = x or y and z  # and가 먼저 계산됨
print(result)  # True (y and z는 False, x or False는 True)

 

   괄호 사용으로 명확히 표현

 

      우선순위가 헷갈릴 경우 괄호를 사용하여 명확히 합니다.

result = (x or y) and z
print(result)  # True

 

 

 

6. 논리 연산 시 주의사항

 

 

   ㉮ 단축 평가(Short-Circuit Evaluation)

      • Python은 필요 없는 조건을 평가하지 않습니다.

      • and: 첫 번째 조건이 거짓이면 두 번째 조건을 평가하지 않음.

      • or: 첫 번째 조건이 참이면 두 번째 조건을 평가하지 않음.

x = False
y = 10 / 0  # ZeroDivisionError

# x가 False이므로 y는 평가되지 않음
print(x and y)  # False

 

   ㉯ Boolean 외 값의 논리 연산

      • Python에서는 0, None, 빈 문자열(""), 빈 리스트([])는 거짓(False)로 간주됩니다.

print(bool(0))  # False
print(bool(10))  # True
print(bool(""))  # False

 

 

 

7. 요약

 

논리 연산자는 조건을 조합하거나 반전시키는 데 필수적입니다.

Python의 and, or, not은 간단한 조건문부터 복잡한 논리 구조까지 다양한 상황에서 유용하게 사용됩니다.

 

핵심 정리

 

   ㉮ and: 모든 조건이 참이어야 참(True) 반환.

   ㉯ or: 하나 이상의 조건이 참이면 참(True) 반환.

   ㉰ not: 조건의 반대 값을 반환.

   ㉱ 우선순위: not > and > or.

728x90
반응형