boolean, 논리연산자

비교연산자.

1-1 객체가 같은지 다른지 비교

==, != 는 값 자체를 비교하고,

is, is not 은 객체를 비교한다.

소스

print(1 == 1.0)
print(1 is 1)
print(1 is not 1.0)
print(1 is 1.0) # 1은 정수객체, 1.0은 실수객체

결과

True
True
True
False

1-2 id 함수를 이용해 메모리주소를 알 수 있다.

소스

print(id(1))
print(id(1.0))

결과

4299751664
4300785200

2. 논리연산자

and, or, not 이 있다.

논리연산자가 식 하나에 들어있으면, not, and, or 순으로 판단한다.

예시 : not True and False or not False

답 : True

풀이과정 : ((not True) and False) or (not False)

3. 연산 순서

비교연산자와 논리연산자가 섞였으면,

비교 연산자(is, is not, ==, !=, <, >, <=, >=)를 먼저 판단하고 논리 연산자(not, and, or)를 판단

4. 정수, 실수, 문자열을 bool함수에 사용

소스

print(bool(1)) #True
print(bool(3)) #True
print(bool(0)) #False
print(bool(0.0)) #False
print(bool('False')) #True
print(bool(False)) #False
print(bool('')) #False
print(bool("")) #False

4-1 조심해야할 사항

파이썬의 논리 연산자는 마지막으로 단락 평가를 실시한 값을 그대로 반환한다.

단, and 연산자 앞에 False가 나와서 두 번째 값을 보지 않아도 값이 나오는 경우는 결과가 결정나기 때문에 첫 번째 값이 반환된다.

소스

print(True and 'Python') #Python
print('Python' and True) #True

print(False and 'Python') #False
print('Python' and False) #False
print(0 and 'Python') #0
print(True or 'Python') #True
print('Python' or True) #Python

print(False or 'Python') #Python
print('Python' or False) #Python
print(0 or 'Python') #Python
print(False or 0) #0

Comments