[Python OR 연산자 완전 가이드] 기본부터 응용까지 철저히 해설

1. Python의 or 연산자 기본

or 연산자란?

or 연산자는 Python의 논리 연산자 중 하나이며, 두 조건 중 하나라도 True이면 결과로 True를 반환합니다. 두 조건이 모두 False인 경우에만 False를 반환합니다. 이 연산자는 특히 여러 조건을 결합할 때 사용되며, 간결한 조건 분기를 가능하게 합니다.

기본적인 사용법

or 연산자는 다음과 같이 사용됩니다. 두 조건을 or 로 결합하고, 어느 하나가 True이면 전체가 True가 됩니다.
a = 5
b = 10

if a > 3 or b < 5:
    print("조건 중 하나가 참입니다")
else:
    print("두 조건 모두 거짓입니다")
이 예에서는、a > 3True이고、b < 5False입니다。그러나、or 연산자를 사용했기 때문에、어느 하나의 조건이 True이면 전체 평가가 True가 됩니다。

or 연산자의 특성

or 연산자는 단락 평가(쇼트서킷)라고 불리는 특징을 가지고 있습니다。이는 왼쪽 조건이 True인 경우, 오른쪽 조건은 평가되지 않고 건너뛰어진다는 것을 의미합니다。이는 계산 리소스를 절약하는 데 도움이 될 수 있습니다。 예를 들어, 다음 코드에서는 첫 번째 조건이 True이므로 b == 10은 평가되지 않습니다。
a = 5
b = 10

if a > 3 or b == 10:
    print("a가 3보다 커서 여기서 평가를 종료합니다")

2. if문과 or 연산자의 활용

여러 조건에서의 or 연산자 활용

Python의if문에서, 여러 조건을 평가할 때or연산자는 매우 편리합니다. 예를 들어, 어떤 조건이 충족되면 특정 처리를 수행하고 싶을 경우,or를 사용함으로써 코드를 간결하게 만들 수 있습니다. 다음은,or연산자를 사용하여 사용자의 연령에 따라 행동을 결정하는 예시입니다.
age = 16

if age < 18 or age > 65:
    print("할인 대상입니다")
else:
    print("할인 대상이 아닙니다")
이 예시에서는 18세 미만 또는 65세 이상인 사용자에게 할인이 적용됩니다.or를 사용함으로써 두 조건을 간단히 결합할 수 있습니다.

여러 조건과 or의 조합

보다 복잡한 조건에서도or를 사용해 간단히 할 수 있습니다. 다음 예시에서는 여러 변수를 사용하여, 어느 하나가 지정된 조건에 해당하면 처리가 실행되도록 합니다.
temperature = 35
humidity = 70

if temperature > 30 or humidity > 60:
    print("에어컨을 켜세요")
else:
    print("에어컨은 필요 없습니다")
이 경우, 온도가 30도를 초과하거나 습도가 60%를 초과하면 에어컨을 켜도록 지시합니다. 이처럼 일상적인 판단을 간단히 하기 위해or를 사용할 수 있습니다.
年収訴求

3. or 연산자의 응용

if문 외에서의 or 연산자 사용 예시

or 연산자는 if문 안뿐만 아니라 다양한 상황에서 사용할 수 있습니다. 특히 유용한 경우는 기본값을 설정할 때입니다. 리스트나 딕셔너리와 같은 객체가 None이거나 비어 있는지를 확인하고, 그 경우에 기본값을 할당하는 식으로 사용할 수 있습니다.
def get_list(l=None):
    l = l or []
    return l

print(get_list())  # 결과: []
print(get_list([1, 2, 3]))  # 결과: [1, 2, 3]
이 예에서는 리스트가 None일 때 빈 리스트를 반환하는 처리가 수행됩니다. or 연산자를 사용함으로써 조건 분기 없이 간단한 코드를 작성할 수 있습니다.

여러 개의 or를 사용할 경우

3개 이상의 조건을 or 로 연결하는 경우도 있습니다. 이런 경우, 조건은 왼쪽부터 순차적으로 평가되며, 처음으로 True가 되는 값이 반환됩니다.
result = None or "default" or "another"
print(result)  # 결과: default
이 예에서는 처음의 NoneFalse로 간주되기 때문에, 다음의 “default”이 결과로 반환됩니다. 이처럼 or 연산자를 사용함으로써 여러 조건 중 가장 적절한 값을 선택할 수 있습니다.

4. and와 or의 차이

기본적인 차이

andor은 모두 논리 연산자이지만 동작은 완전히 다릅니다. or 연산자는 어느 하나의 조건이 True이면 전체가 True가 되는 반면, and 연산자는 두 조건이 모두 True인 경우에만 전체가 True가 됩니다. 예를 들어, 아래와 같은 코드를 살펴보겠습니다.
a = True
b = False

if a and b:
    print("두 조건이 모두 참입니다")
else:
    print("하나라도 거짓이거나 양쪽이 모두 거짓입니다")
이 예에서는 aTrue이더라도 bFalse이므로 전체 결과는 False가 되고, else 절이 실행됩니다. or 연산자와 비교하면, 양쪽이 True이어야 한다는 점이 and의 큰 차이점입니다.

다중 조건 사용 예시

andor을 결합해서 사용할 경우, 조건을 명확히 하기 위해 괄호를 사용하는 것이 권장됩니다.
temperature = 25
weather = "rainy"

if (temperature > 20 and temperature < 30) or weather == "rainy":
    print("우산을 가지고 나가세요")
else:
    print("우산은 필요 없습니다")
이 경우, 기온이 20도에서 30도 사이이거나 날씨가 비이면 우산을 챙기라는 지시가 내려집니다. andor을 결합함으로써 복잡한 조건도 간결하게 표현할 수 있습니다.

5. or 연산자의 성능 최적화

단축 평가에 의한 성능 향상

or 연산자의 가장 큰 장점 중 하나는, 왼쪽 조건이 True이면 오른쪽 조건이 평가되지 않는 “단축 평가” 특성입니다. 이를 통해 불필요한 계산을 피할 수 있어 처리 속도가 향상됩니다. 예를 들어, 아래 코드에서는 can_edit()True인 경우 can_publish()이 실행되지 않습니다.
def can_edit():
    return True

def can_publish():
    print("이 함수는 호출되지 않습니다")
    return True

if can_edit() or can_publish():
    print("편집 또는 공개 가능")
이 예에서는 or의 왼쪽이 True이므로 오른쪽의 can_publish()이 호출되지 않아 불필요한 처리가 발생하지 않습니다. 이처럼 or를 사용한 조건 분기는 효율적인 코드를 작성하기 위한 중요한 기술입니다.

실전에서의 활용 예

대규모 데이터셋을 다루거나 여러 조건을 고속으로 처리할 때, 단축 평가를 활용하면 처리 시간을 단축할 수 있습니다. or 연산자를 사용함으로써 불필요한 처리를 회피하고 효율적인 코드를 구현할 수 있습니다.

6. 요약

or 연산자 복습

or 연산자는 Python 프로그래밍에서 논리 연산의 기초로서 매우 중요한 역할을 합니다. 여러 조건 중 하나라도 True인 경우 True를 반환하는 특성을 가지고 있어, 특히 조건 분기나 기본값 설정 등 다양한 상황에서 사용됩니다. 또한 or 연산자는 단락 평가를 수행하므로 성능 최적화에도 도움이 됩니다.

실제 코드로 시도해 보자

이론에만 머무르지 말고, 실제로 Python 개발 환경에서 or 연산자를 사용해 보시기를 강력히 권장합니다. 기본 사용법부터 응용 예제까지 폭넓게 시도하고, 코드가 어떻게 실행되는지 확인해 보세요. 조건식의 동작과 효율적인 코드 작성 방법을 직접 체험함으로써 이해가 더욱 깊어집니다.
年収訴求