같은 for-if문인데도 결과가 다른이유
def al(x):
    a = ''
    for i in x:
        print(i)
        if  i == False:
            return False

        else:
            return True

al(['1',2,5,4,0])

True
이렇게 하면 왜 결과가 무조건 True가 되고

def al(x):
    result=True
    for i in x:
        if not i :
            return False
    return result

al([1,2,5,4,0])

False
이렇게 하면 결과가 왜 제대로 나오나요?

아무개 66

2022년 5월 12일 3:14 오후

잘은 모르지만 처음 코드는 문자열 1을 만나면 else로 진입하여 return True를 반환하게 되면서 for 문을 빠져나올 것 같습니다..그래서 한번만 실행 되고 그 이후는 실행 안될 것 같습니다. 그래서 True 가 나오지 않나 싶습니다. 두 번째 코드는 조건문이 False 일때 True가 되어 if 문으로 진입 하므로 for 문을 끝까지 수행하고 if 문 안에서 False 를 return 하는것 같습니다. 리스트의 마지막 값이 0 이기 때문에요. - galactic19님, M 2022년 5월 18일 6:54 오후 추천 , 대댓글
목록으로