가장 기본이 될 수 있는 파이썬 논리연산자 and 와 or 에 대해서 알아보려고 합니다. 또, 간단한 예제를 통해서 논리연산자를 사용하는 방법에 대해 보여드리도록 하겠습니다. 이 글을 정독하시면 논리연산자에 대한 확실한 개념을 잡으실 수 있고, 관련 예제로 응용 능력을 키우실 수 있습니다.
파이썬 논리연산자란?
코드의 참 거짓을 따져주는 연산자라고 할 수 있습니다. 크게 3가지 종류가 있는데 and, or, not이 그것입니다. 중고등학생 때 명제와 집합에 대해서 배우셨던 경험이 있을 것입니다. 그 내용과 유사한 개념이라고 볼 수 있습니다.
논리연산자 사용에 따른 결과값
구체적으로 각각의 연산자는 어떤 결과를 도출해 내는지, 같이 간단한 코드를 통해서 보도록 하겠습니다.
1. and 연산자
예를 들어, A and B라고 작성된 코드라면 A와 B 모두에 해당했을 때 해당 코드를 참이라고 말합니다. 반면 A와 B중 하나라도 해당이 되지 않는 경우, A and B는 거짓이 됩니다.
2. or 연산자
Or 연산자는 두 비교 요소 중 하나라도 참인 경우, 전체를 참이라고 봅니다. A or B에서 A,B가 모두 참인 경우, A나 B 중 하나가 참인 경우 최종 결과값은 참이 됩니다.
3. not 연산자
반전 연산자라고도 할 수 있습니다. not A조건이라고 쓴다면 A조건이 거짓일때 이 코드는 참이 된다는 것입니다.
이렇게 살펴보니, 어렵지 않은데요. 구체적인 결과를 조건문과 결합한 다양한 케이스로 살펴보겠습니다.
조건문과 논리연산자 2가지 케이스
1) and 연산자 사용 시
우선 X와 Y의 변수를 통해서 정수형(int)의 데이터를 받습니다. 그 다음 if 조건문을 통해서 참과 거짓을 가리게 됩니다. 입력받은 x와 y의 값이 모두 5보다 크다면 “참”이라는 메시지를 출력하게 되고, 그 외의 경우(x가 5보다 크지만 y가 5보다 작은 경우, y가 5보다 크지만 x가 5보다 작은 경우, x, y 두 수 모두 5보다 작은 경우)에는 “거짓”이라는 메시지가 뜨게 됩니다.
2. or 연산자 사용시
위 1번 케이스와 동일하게 Z와 K로 각각 숫자를 입력받습니다. 다만 if 조건문에서 or가 사용되었기 때문에 Z가 10보다 크거나 혹은 K가 10보다 큰 경우 “참”이라는 메시지를 출력하게 됩니다. Z가 10보다 작고, K도 10보다 작은 경우에만 “거짓” 메시지가 뜨게 됩니다. and 연산자에 비해 좀 더 넓은 범위를 포괄하는 연산자라고도 할 수 있겠습니다.
실전 예제 Case Study
이렇게 논리연산자의 기본 개념에 대해서 알아보았습니다. 이제 조금 더 복잡한 실전 예제를 통해서 심화학습을 해 보도록 하겠습니다.
문제
다음과 같이 3번의 연산이 반복되거나, 두 숫자에 모두 0이 입력된 경우 종료하는 프로그램을 만들어보시오. 단, 반드시 논리연산자를 사용하시오.
정답 코드 및 해설
- 3번의 연산을 반복하기 위해 for문을 사용했습니다. 또한 반복문 구동횟수를 카운팅 하기 위해 변수 i를 임의로 설정하고, 범위를 나타내는 함수 range를 이용하여 0,1,2 총 3번이 계수되도록 했습니다.
- x와 y 변수를 통해 정수값을 입력받습니다.
- 조건문을 통해서 x와 y가 모두 0인 경우에는 반복문을 종료한다는 메시지를 출력합니다.
- X, y가 모두 0이 아닌 숫자가 입력된 경우에는 두 수를 합산한 후, print문을 통해서 합의 결과값을 출력합니다.
- for문이 종료된 후에는 정상적으로 반복문이 종료되었음을 알리는 문구를 출력합니다.
이렇게 파이썬 논리연산자와 관련 예제에 대해서 알아보았습니다. 파이썬과 블로그 자동화에 대해 더 알아보고 싶다면 파이썬마스터 카카오톡 채널 혹은 블똑사 카페로 방문해주세요!
같이 읽어볼 만한 파이썬마스터 칼럼들