저는 처음에 Truthy & Falsy 참같은값? 거짓같은값? 이 부분에 대해서 이해하기 어려웠고 처음코딩을 접하시는 분들도 이부분에 대해서 이해하기 어려우실 거라고 생각합니다.
기본적으로 규칙은 비슷합니다.
부울 컨텍스트
값을 if, while 조건으로 사용할 때 부울 컨텍스트에서 사용합니다.
부울 컨텍스트 값은 true가 있거나 false의미가 있어야하는 코드의 특정 부분으로 생각할 수 있습니다.
예를들면if <value>: 중에 value에 true혹은 false가 들어갑니다.
빈 목록 [], 빈 듀플 (), 빈 딕셔너리 {}, 빈 세트 set(), 빈 문자열 "", 빈 범위 range(0)
0, 0j, 0.0
none, false
bool값은 True, False 둘 중 하나를 반환합니다.
예)
bool(1)
True
bool(0)
False
bool(-5)
True
bool(0.0)
False
bool(none)
Flase
등이 있습니다.
def print_even(data):
if not data:
raise ValueError("The argument data cannot be empty")
for value in data:
if value % 2 == 0:
print(value)
위처럼 if not data에 대해서 알아보면
data비어있을경우
data비어있지 않은 경우
예시)
처음에는 이렇게 만들었습니다.
if re.search(email_regex, email)==None:
return JsonResponse({'message': '이메일 형식이 아닙니다.'}, status= 400)
이번에 배웠던 내용으로 아래와 같이 만들게 되었습니다.
if not re.search(email_regex, email):
return JsonResponse({'message': '이메일 형식이 아닙니다.'}, status= 400)
위와 같은 함수를 만들었습니다.
저는 쉽게 None는 false값이라고 생각했고, if not re.search(email_regex, email): 처럼 not을 쓴이유는 email값이 비어있지 않으면 not data처럼 false값이기 때문에 같은 내용이라고 생각했습니다.
틀릴 수도 있지만 이해한 내용을 응용해서 수정하게 되었습니다.
이부분에 대해서 더 알게되는 내용이 있다면 계속 수정해 가겠습니다.