같은 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
이렇게 하면 결과가 왜 제대로 나오나요?

아무개 365

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 오후 추천 , 대댓글
이 둘은 다른 프로그램 임. 전자는 for을 1회 돌고 나가게 되어 있고, 후자는 false를 만날 때까지 for 문이 루프를 도는 것임. 철칙1호 : 나를 먼저 의심하세요~ - 유정아빠님, M 2022년 5월 28일 4:15 오전 추천 , 대댓글
목록으로
1개의 답변이 있습니다. 1 / 1 Page

def al(x):
a = ''
for i in x:
print(i)
if i == False:
return False
else:
return True

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

def a2(x):
result=True
for i in x:
print(bool(i))
if not i :
return False
return result

print(a2([1,2,5,4,0]))

유정아빠

2022년 5월 28일 4:10 오전