플그래밍/파이써언

Python: 불리언 연산 이해하기

훗티v 2024. 12. 1. 16:48
Python에서 불리언 연산 이해하기

Python에서 불리언 연산 이해하기

불리언(Boolean)은 프로그래밍에서 **True(참)**와 **False(거짓)**를 나타내는 데이터 타입입니다. Python은 불리언 값을 처리하기 위한 다양한 논리 연산자를 제공합니다. 이번 포스팅에서는 불리언 연산을 이해하고 이를 활용하여 효과적인 조건문을 작성하는 방법을 배웁니다.



1. 불리언 기본 개념

불리언 값은 `True`와 `False` 두 가지 상태만 가지며, Python에서는 첫 글자를 반드시 대문자로 작성해야 합니다.


is_active = True
is_admin = False

print(is_active)  # 출력: True
print(is_admin)   # 출력: False
        


2. 불리언 논리 연산자

Python은 불리언 값을 조합하거나 반전시키기 위해 다음과 같은 논리 연산자를 제공합니다.


2.1. AND 연산자

`and` 연산자는 양쪽 조건이 모두 참일 때만 참을 반환합니다.


a = True
b = False

print(a and b)  # 출력: False
print(a and True)  # 출력: True
        

2.2. OR 연산자

`or` 연산자는 하나라도 참인 조건이 있으면 참을 반환합니다.


a = True
b = False

print(a or b)  # 출력: True
print(b or False)  # 출력: False
        

2.3. NOT 연산자

`not` 연산자는 조건을 반전시킵니다. 참은 거짓으로, 거짓은 참으로 변경합니다.


a = True
b = False

print(not a)  # 출력: False
print(not b)  # 출력: True
        


3. 불리언 연산자의 우선순위

Python에서는 불리언 연산자의 우선순위를 따릅니다:

  1. not (가장 높은 우선순위)
  2. and
  3. or (가장 낮은 우선순위)

a = True
b = False
c = True

# 우선순위를 고려한 연산
print(a or b and c)       # 출력: True (b and c가 먼저 계산)
print((a or b) and c)     # 출력: True (괄호를 사용해 우선순위 변경)
        


4. 불리언 연산의 활용


4.1. 조건문에서 사용

조건문에서 불리언 연산자를 사용하여 복잡한 조건을 처리할 수 있습니다.


age = 25
has_permission = True

if age > 18 and has_permission:
    print("접근이 허용되었습니다.")
else:
    print("접근이 거부되었습니다.")
        

4.2. 값의 존재 확인

Python의 다양한 값은 암묵적으로 불리언으로 평가됩니다. `None`, `0`, 빈 문자열, 빈 리스트 등은 모두 `False`로 평가됩니다.


name = ""
items = []

print(bool(name))   # 출력: False (빈 문자열)
print(bool(items))  # 출력: False (빈 리스트)
print(bool(42))     # 출력: True (0이 아닌 정수)
        

4.3. 값 단축 평가 (Short-Circuiting)

Python의 `and`와 `or`는 필요에 따라 연산을 조기 종료합니다. 이를 단축 평가라고 합니다.


a = True
b = False

print(a or b)  # 출력: True (a가 참이므로 b를 평가하지 않음)
print(b and a) # 출력: False (b가 거짓이므로 a를 평가하지 않음)
        


5. 예제: 로그인 검증

아래는 불리언 연산자를 활용한 간단한 로그인 검증 예제입니다.


username = "admin"
password = "1234"

input_user = "admin"
input_pass = "1234"

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


6. 주의사항

  • 부정확한 조건 작성: 복잡한 논리식에서는 괄호를 적절히 사용하여 연산 우선순위를 명확히 해야 합니다.
  • 암묵적 변환 주의: 불리언으로 평가되는 값을 사용할 때는 예상치 못한 결과를 방지하기 위해 bool() 함수를 사용하여 명시적으로 변환하세요.


7. 마무리

불리언 연산자는 Python에서 논리적 흐름을 제어하는 핵심 도구입니다. `and`, `or`, `not` 연산자의 특성과 우선순위를 이해하면 복잡한 조건도 명확하게 표현할 수 있습니다. 다양한 조건문과 논리식을 작성하며 연습해 보세요!

728x90