| all(x)는 반복 가능한(literable) 자료형 x를 입력 인수로 받으며, 이 x의 요소가 모두 참이면 True, 거짓이 하나라도 있으면 False를 돌려준다.
점프투파이썬 참고 (링크)
# 풀이 1 (내 풀이)
def my_all(elements):
# 빈 elements가 들어오는 경우, for문을 통해 순환하지 않기 때문에
# 기본값을 True로 설정
result = True
for element in elements:
# Falsy값을 만났을 때, result의 값을 False로 변환하고, for문을 종료한다.
if bool(element) == False:
result = False
break
return result
# 풀이 1-1 (for문 안에 있는 조건문 간소화)
def my_all(elements):
result = True
for element in elements:
# not 연산자를 통해 형변환이 이루어짐
if not element: # bool(element) == False
result = False
break
return result
# 풀이 2 (True, False가 대응되는 숫자를 이용한 방법)
# True == 1 / False == 0
def my_all(elements):
result = 1
for element in elements:
result *= bool(element)
if result == 1:
return True
else:
return False
# 풀이 2-1 (리턴 조건식 간소화)
def my_all(elements):
result = 1
for element in elements:
result *= bool(element)
return bool(result) # 1이라면, True / 0이라면, False를 반환할 것
True를 1로, False를 0으로 생각해볼 수 있겠다는 얻을 수 있었습니다.