본문 바로가기
programming/Python

파이썬 논리 연산자 그리고 또는 아니다 AND OR NOT

by 개코 - 개발과 코딩 2021. 8. 3.

논리연산자는 2개 이상의 비교연산자와 같이 사용하여 2가지 이상의 조건이 맞는지 틀린지를 검사한다. 결과값은 참과 거짓이다. 비교연산자와 같이 사용하여 많은 논리적 판단을 하는데 사용되기에 주의가 필요한 부분이다. 특히 소숫점이 들어간 부분에서 주의하고 문자열의 경우에도 실수가 많은 부분이기도 하다. 생각해 보면 별 것 아닌 것인데도 말이다.

파이썬 논리연산자
파이썬 논리연산자

 

논리연산자

논리연산자는 2가지 이상의 비교연산자와 같이 사용되기도 하고 독자적으로 사용되기도 한다.

경우에 따라 다르다.

보통 3가지이며 and or not 이다.

  • and : 그리고
    A > B and C = B : A가 B보다 크고 C가 B와 같으면 참
  • or : 또는
    A > B or C =B : A가 B보다 크거나 또는 C가 B와 같으면 참
  • not : 아니다.
    not(A > B) : A가 B보다 크면 거짓 ( 괄호안의 판단을 반대로 바꾸는 역할을 한다. )

코드를 보자

위에서 언급한 논리연산자 3가지에 대한 샘플코드이다.

어려운 것이 없을 것이다.

vVar 에 할당된 10이란 값에 대한 비교연산자를 사용하여 결과를 표시하고 있다.

not 에서 모호할 수 있다.

논리연산자 not 이 있다면 괄호안에 들어간 비교 결과는 반대로 표시한다.

vVar = 10
vRst = bool( vVar > 1 and vVar > 5 )
print(' vVar > 1 and vVar > 5 is ', vRst, type(vRst))

vRst = bool( vVar < 11 or vVar > 5 )
print(' vVar < 11 or vVar > 5 is ', vRst, type(vRst))

vRst = bool( vVar < 1 and vVar < 5 )
print(' vVar < 1 and vVar < 5 is ', vRst, type(vRst))

vRst = bool( not( vVar < 1 and vVar < 5 ) )
print(' not( vVar < 1 and vVar < 5 ) is ', vRst, type(vRst))

vRst = bool( vVar > 11 or vVar < 5 )
print(' vVar > 11 or vVar < 5 is ', vRst, type(vRst))

vRst = bool( not( vVar > 11 or vVar < 5 ) )
print(' not( vVar > 11 or vVar < 5 ) is ', vRst, type(vRst))

결과화면을 보도록 하자.

not이 들어간 비교값이 반대로 나오는 것을 알 수 있다.

좀 더 자세하게 풀어서 설명하면 아래와 같다.

  • and
    2가지 이상의 조건이 모두 만족하면 참이다.
  • or
    2가지 이상의 조건 중 하나라도 만족하면 참이다.
  • not
    조건에 대한 비교값의 반대로 출력한다.
    조건이 참이라면 거짓, 조건이 거짓이면 참이다.

과거 이 논리연산자에 대한 메커니즘을 파헤친 적이 있다.

and와 or에 대한 애매한 상황이 발생했기 때문이지만, 지금 생각하면 쓸데없는 탐구정신이기도 했다.

아마 C언어를 공부한 사람이라면 좀 더 자세한 메커니즘을 알 수 있을 것이다.

세세한 것은 넘어가고 이렇다 라는 정도로만 알고 넘어가자

반응형

댓글