본문 바로가기
Python/파이썬 기초

[Python] 논리연산

by isfp_yykkng 2023. 2. 20.

논리연산

단락평가 

단락평가는 논리연산에서 코드의 앞만 보고 값을 정할 수 있는 경우 뒤는 보지 않고 값을 결정하는 경우를 말한다. 즉, 복잡한 코드를 단순하게 하는 방식이다.  예를 들어, 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의 값이 된다.

a가 false면 뒤에는 보지 않고 false
And 연산 단락평가 경우의 수

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