논리연산
단락평가
단락평가는 논리연산에서 코드의 앞만 보고 값을 정할 수 있는 경우 뒤는 보지 않고 값을 결정하는 경우를 말한다. 즉, 복잡한 코드를 단순하게 하는 방식이다. 예를 들어, and 연산의 경우 코드의 앞이 거짓이라면 값은 거짓이다. (코드의 앞 뒤 조건이 모두 참이어야 하기 때문임 )
dic = {"Key2" : "Value1"}
if "Key1" in dic and dic["Key1"] == "Value1" :
print("Key1도 있고, 그 값은 Value1이네")
else :
print("아니네")
bool형과 단락평가에 따른 값 결정
1. and연산
A 가 False 라면 단락평가에 의해 뒤에 값은 보지 않고 모두 False가 된다. 반면, A가 True라면 B의 True/False에 따라 값이 결정되기 때문에 B의 값이 된다.
2. or 연산
A가 True 라면 둘 중 하나라도 True면 True가 되는 or 연산에 따라 True가 된다. 만약 A가 False라면 B의 True/False 값에 따라 결정되기 때문에 B의 값이 된다.
bool 값과 논리연산( True / False)
- 숫자 0을 제외한 모든 수 = true
- 빈 딕셔너리, 빈 리스트를 제외한 모든 딕셔너리, 리스트 = true
- 아무 값도 없다는 의미인 None = false
- 빈문자열을 제외한 모든 문자열 = true
# 숫자
bool(0) # false
bool(1) # true
bool(-1341312124) # true
bool(1231231634) # true
# 리스트, 딕셔너리
bool([]) # false
bool({}) # false
bool([3]) # true
bool({key1 : value1}) # true
# 문자열
bool('') # false
bool('hi') # true
# None
bool(None) # false
단락평가와 논리연산 응용 문제
print(1 and 0 or 2 and 3)
print(1 and 2 or 0 and 3)
print(0 and 2 or 0 and 3)
print(0 or 1 or 0 and 2)
답은 아래에서 확인!
더보기
답은 3, 2, 0, 1
'Python > 파이썬 기초' 카테고리의 다른 글
[Python] 상속과 오버라이드 (0) | 2023.02.22 |
---|---|
[Python] 클래스 (0) | 2023.02.22 |
[Python] 예외 처리 (0) | 2023.02.19 |
[Python] 모듈 (0) | 2023.02.19 |
[Python] 반복제어 - while (0) | 2023.02.19 |