#Python - 36. 파이썬 논리 연산
본문 바로가기
Programming/Python

#Python - 36. 파이썬 논리 연산

by 권가 2020. 2. 14.

이번 시간에는 파이썬의 논리 연산에 대해서 공부해보았습니다.

파이썬의 논리 연산을 들어가기 전에 논리 동작, 기호, 논리식, 진리표를 한 번 보고 넘어가겠습니다!

A, B 입력(INTPUT), Z 결과(OUTPUT)

NOT: 현재 값을 반대로~

AND: 입력(INPUT) 값이 모두 같을 때 1(참), 하나라도 다르면 0(거짓)

OR: 하나라도 1(참)이면 1(참)

NANAD: AND연산 결과(OUTPUT)의 반대입니다.

즉, AND에서 OUTPUT이 위에서부터 차례로 0, 0, 0, 1인데 NAND에서는 1, 1, 1, 0입니다.

NOR: OR연산 결과(OUTPUT)의 반대입니다.

XOR: 입력(INPUT) 값이 하나 있을 때 1(참), 없거나 하나 초과이면 0(거짓)

 

자 그럼 파이썬에서의 논리 연산을 보겠습니다!

def false():
    print('print return false')
    return False


def true():
    print('print return true')
    return True


print('-----------------------')
a = false()
b = true()
if a and b:
    print('참!')
else:
    print('거짓!')
print('-----------------------')
if false() and true():
    print('True')
else:
    print(False)
print('-----------------------')
if true() and false():
    print('True')
else:
    print(False)
print('-----------------------')

 

1.

Line 12: a라는 이름을 가진 변수는 false()라는 이름을 가진 함수를 호출하도록 되어있습니다.

Line 13: b라는 이름을 가진 변수는 true()라는 이름을 가진 함수를 호출하도록 되어있습니다.

Line 14: if 조건문에서 a라는 변수를 찾아가니 false()라는 함수를 호출하게 됩니다.

이어서 and라는 연산이 나오고 b라는 변수를 찾아가니 true()라는 함수를 호출하게 됩니다.

즉, a라는 변수를 찾아가 false()를 호출하고 b라는 변수를 찾아가 true()를 호출하게 되는 것이지요.

따라서 결과는 false(), true()의 출력문이 모두 출력됩니다.

 

2.

1.에서와는 다른 모습을 보이게 됩니다.

그 이유는

Line 19: if 조건문에서 false()와 true()를 직접 호출했습니다.

파이썬에서의 논리 연산은 앞의 조건에 따라 뒤의 조건을 보지 않는 방식으로 간단한 프로그래밍이 가능하도록 지원하고 있습니다.

즉, AND연산에서 하나라도 0(거짓)이면 결과는 0입니다.

따라서 AND 연산 앞에서 0(거짓)이라는 것이 판별이 되는 순간 결과 값은 바로 0으로 처리됩니다.

 

3.

2.에서와 같은 모습을 보이게 됩니다.

하지만 and 연산 앞의 결과가 1(true)이기에 경우의 수가 생기므로 뒤의 조건을 확인해봐야겠죠?

따라서 3.에서는 true()의 출력문, false()의 출력문 모두 출력되게 됩니다.

 

 

댓글