Truthy / Falsy

자바스크립트의 falsy와 truthy와 비슷

단락평가

  • 논리연산에서 코드의 앞만 보고 값을 정할 수 있는 경우 뒤는 보지 않고 값을 결정

  • 복잡한 코드를 단순하게 하는 방식

a = 10
if a < 0 and 2 ** a > 1000 and a % 5 == 2 and round(a) == a:
    print('복잡한 식')
def return_false():
    print('함수 return_false')
    return False
def return_true():
    print('함수 return_true')
    return True

print('테스트')
a = return_false()
b = return_true()

if a and b:     # 우선 a,b둘다 실행하고 논리연산 시작
    print(True)
else:
    print(False)

print('테스트2')
if return_false() and return_true():    
    # 논리연산자의 첫번째 실행했더니 false라서 뒤에는 실행하지 않
    print('True')
else:
    print(False)
dic = {"key2": "value1"}
if 'key1' in dic and dic['key1'] == 'value1':
    print('key1도 있고, 그 값은 value1이다.')
else:
    print('아니네')
# '아니네'
# 논리연산자의 두번째는 에러가 발생하지만, 단락평가 때문에 실행되지 않는다.

bool 값과 논리 연산

  • 숫자 0을 제외한 모든 수 : true

  • 빈 딕셔너리, 빈 리스트를 제외한 모든 딕셔너리, 리스트: true

  • 아무 값도 없다는 의미인 None: false

  • 빈 문자열을 제외한 모든 문자열: true

value = input('입력해 주세요') or '아무것도 못받았어'
print('입력받은 값', value)

Last updated