파이썬 논리 연산자는 논리적인 조건을 평가하고 조합하는 데 사용된다. 주로 조건문, 반복문, 함수 호출 등 다양한 상황에서 사용된다. 파이썬 논리 연산자는 다음과 같은 주요 역할을 한다.
조건 결합 - 여러 개의 조건을 결합하여 복잡한 조건을 만들 수 있다.
논리적 흐름 제어 - 조건에 따라 다른 코드 블록을 실행하도록 제어한다.
데이터 필터링 - 데이터의 조건을 확인하여 원하는 데이터를 선택하거나 걸러낸다.
2. 파이썬 and 연산자
and 연산자는 두 개의 논리 표현식(조건)이 모두 True 일 때만 True를 반환한다. 만약 둘 중 하나라도 False가 있으면 False를 반환한다. and 연산자는 두 표현식이 모두 True인지 확인해야 하는 경우에 사용된다.
예제 코드 1
x = True
y = False
result = x and y
print(result)
False
실행 결과
and 연산자는 두 표현식이 모두 True일 때만 True를 반환하게 되는데 위의 예제에서 x는 True이지만 y가 False이므로 result 변수에는 False가 저장되게 된다.
예제 코드 2
name = "Jack Snider"
if len(name) >= 10 and "Jack" in name:
print('True')
else:
print('False')
True
실행 결과
예제에서 첫 번째 조건은 len(name) >= 10으로 name 변수에 담긴 "Jack Snider" 문자열이 공백을 포함해 길이가 10 이상인지 여부를 판단하고 두 번째 조건은 in 연산자를 이용하여 "Jack"이라는 문자열이 name 변수 안에 있는지 판단한다. 두 조건을 모두 살펴보았을 때 양쪽 다 True를 반환하므로 결괏값은 True이다. 따라서 실행 결과는 'True'가 출력되는 걸 확인할 수 있다.
3. 파이썬 or 연산자
or 연산자는 두 개의 논리 표현식(조건)중 하나 이상이 True이면 나머지 조건을 살피지 않고 True를 반환한다. 만약 두 표현식이 모두 False이면 False를 반환하게 된다. or 연산자는 둘 중 하나만 True일 때 조건이 충족되는 경우에 사용된다.
예제 코드 1
x = True
y = False
result = x or y
print(result)
True
실행 결과
or 연산자로 조건을 확인할 때 x는 True이므로 바로 result 변수에 True를 저장하게 된다. or 연산자는 조건을 하나씩 살펴보았을 때 하나라도 바로 True를 찾는다면 나머지 조건을 살피지 않고 바로 True를 반환하게 된다.
예제 코드 2
name = "Jack Snider"
if "J" not in name or "S" not in name:
print('True')
else:
print('False')
False
실행 결과
"J" not in name은 "J"라는 문자열이 name 변수에 있지 않다.라는 조건이지만 "J"는 name 변수 안에 존재하기 때문에 False를 반환하게 된다. 마찬가지로 "S" not in name 조건 또한 False를 반환한다. 따라서, 둘 다 False를 반환함으로 결과는 "False"를 출력하게 된다.
4. 파이썬 not 연산자
not 연산자는 주어진 논리 표현식의 반대 값을 반환한다. True는 False로, False는 True로 반환하게 된다. 그래서 not 연산자는 조건을 부정할 때 사용된다.
예제 코드
x = True
result = not x
print(result)
False
실행 결과
처음 x 변수에는 True가 저장되어 있지만 not 연산자를 사용하여 반대 값을 반환하게 하였다. 그래서 result 변수에는 True의 반대 값인 False가 저장되는 걸 확인할 수 있다.