언어/Python

Python 논리 연산자 not

★ ☆ 2020. 12. 30. 20:15

Python의 논리 연산자는 C언어와 비슷하지만 차이점이 있다.

 

python은 "!"를 not으로 인식하지 않는다. Python은 not을 "not"이라는 단어로 사용한다.

 

condition1 = TRUE
condition2 = FALSE
condition3 = not condition1

print(condition1) # TRUE
print(condition2) # FALSE

print(not condition1) # FALSE
print(condition3) # FALSE

print(condition1 and condtion2) # FALSE

 

c.f. ~(tilde) operator는 bit연산에서 각 digit을 0과 1을 뒤집은 결과 값을 의미한다.

     number = 2 라면, number는 비트로는 10이다.

     ~number는 개념적으로는 01이 되어야 한다.

 

    그러나, 프로그래밍 언어는 2라는 숫자를 10으로 저장하고 있는 것이 아니라 자료형의 크기 만큼 저장하고 있다.

    예를 들어, 6자리가 자료형의 단위였다면

    2는 000010이 된다. -2는 111101이 된다. 그러므로 01이 아니라 다른 수가 된다.

 

    python에서 ~x는 (-x)-1이 된다.

    stackoverflow.com/questions/3462227/weird-output-for-bitwise-not