Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬에서 AND와 OR 연산자의 차이점은 무엇일까?

논리 연산자란?

파이썬에서 andor(그리고 not)은 논리 연산자(logical operators)입니다. 두 연산자 모두 참(True) 또는 거짓(False)으로 평가되는 두 개의 피연산자를 필요로 하며, if 문이나 while 문 등에서 여러 조건을 결합할 때 널리 사용됩니다.

AND 연산자(and): 두 조건이 모두 참일 때만 True

and 연산자는 양쪽 피연산자가 모두 True일 때만 True를 반환합니다. 두 조건 중 하나라도 거짓이면 전체 결과는 항상 False가 됩니다.

>>> a=50
>>> b=25
>>> a>40 and b>40
False
>>> a>100 and b<50
False
>>> a==0 and b==0
False
>>> a>0 and b>0
True

위 예시에서 a=50, b=25인 경우 a>40 and b>40은 앞 조건은 참이지만 뒤 조건이 거짓이므로 전체 결과가 False가 됩니다. 마지막 줄처럼 두 조건이 모두 참일 때만 True가 반환되는 것을 확인할 수 있습니다.

OR 연산자(or): 하나라도 참이면 True

or 연산자는 피연산자 중 하나라도 참이면 True를 반환하며, 두 조건이 모두 거짓일 때만 False가 됩니다.

>>> a=50
>>> b=25
>>> a>40 or b>40
True
>>> a>100 or b<50
True
>>> a==0 or b==0
False
>>> a>0 or b>0
True

같은 변수 값으로 테스트해 보면, a>100 or b<50처럼 첫 번째 조건이 거짓이어도 두 번째 조건이 참이면 전체 결과는 True가 됩니다. 두 조건이 모두 거짓인 a==0 or b==0만 False를 반환합니다.

핵심 차이점 한눈에 보기

연산자True 반환 조건예시
and두 피연산자가 모두 참일 때만True and False → False
or피연산자 중 하나라도 참이면True or False → True

단락 평가(Short-circuit Evaluation)

파이썬의 논리 연산자는 단락 평가 방식으로 동작합니다. and는 첫 번째 피연산자가 거짓이면 두 번째 피연산자를 평가하지 않고, or는 첫 번째 피연산자가 참이면 두 번째 피연산자를 평가하지 않습니다. 이 특성을 활용하면 불필요한 조건 검사를 줄여 코드 실행 성능을 최적화할 수 있습니다.