본문 바로가기

코테 공부/python

Python and or not 연산자

A and B

A,B는 객체 자체/ 연산/ 함수 다 가능

and연산자 앞 뒤의 객체(연산 결과가 객체인 연산도 가능)가 True인 경우에는만 True를 리턴

 

print((1 - 1) and True)
# 0  False객체가 생성되서 리턴되는게 아니라 앞에 연산의 결과인 0(거짓을 의미하는 객체) 리턴

-A가 거짓을 뜻하는 객체라면, B는 and 연산자가 고려하지 않음. B의 결과를 확인하지 않음.

A가 이미 거짓이기 때문에 and연산자의 결과는 거짓.

False객체를 새로 만들지 않고, 그냥 A(또는 A의 결과)를 리턴

 

result = 1 + 3 - 3 and 'something else.'
print(result)
# 'something else.'

-A가 참이라면 연산의 결과는 up to  B

B가 참을 뜻하는 객체인지 거짓을 뜻하는 객체인지 확인할 필요 없이 B의 결과 리턴(B가 참이면 참, 거짓이면 거짓)

 

A or B

둘 중 하나만 True여도 True 리턴

and 연산자와 동일한 방식으로 리턴

# A가 참이면 A 결과 리턴
print(1 or False) # 1


# A가 거짓이면 B 결과 리턴
print([] or 3 * 0) # 0
print(False or 'False') # 'False'

 

not

not 표현식

결과는 항상 True, False 객체로 나옴