인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

수줍은질럿님의 프로필 이미지
수줍은질럿

작성한 질문수

파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

파일입출력

(06:15 - 07:24) else의 생략 문제

해결된 질문

작성

·

170

2

선생님께서 작성하신 코드는

(1)

score_file=open("score.txt","r",encoding="utf8")
while True:
    line=score_file.readline()
    if not line:
        break
    print(line,end="")
score_file.close()

입니다. 하지만 제가 배우기로는 if를 쓰고 나면 else를 써주어야 한다고 배웠습니다. 그전 영상에서도 else를 항상 써주셨으니까요. 그런데 이번에는 별도의 else 없이 바로 (if와 같은 indent 깊이로) print를 넣으셨고, 이것은 오류없이 잘 실행됐습니다.

(2)

score_file=open("score.txt","r",encoding="utf8")
while True:
    line=score_file.readline()
    if not line:
        break
    else:
        print(line,end="")
score_file.close()

그래서, 제가 생각하기에 맞는 방식으로, (1)보다 조금 더 명령어들을 넣어서 해봤는데, 정상적으로 잘 작동합니다.

질문은, (1)과 (2)가 완전히 동일한 명령을 호출하는 것인지, 그러니까 (1)과 같이 else를 생략해도 문제가 되지 않는 것인지 궁금합니다.

답변 2

0

 감사합니다!

0

나도코딩님의 프로필 이미지
나도코딩
지식공유자

안녕하세요

위 예제에서는 if 만 있거나 if else 로 적거나 동일하게 동작합니다. 하지만 실제로 둘은 다릅니다. 마트에 장을 보러 갔을 때

if 만약 초코파이가 있으면:

   초코파이를 사와

오예스를 사와

이렇게 하면 초코파이가 있을땐 초코파이+오예스를, 없을땐 오예스만 사게 됩니다.

if 만약 초코파이가 있으면:

    초코파이를 사와

else:

    오예스를 사와

이렇게 하면 초코파이가 있을땐 초코파이만, 없을땐 오예스만 사게 됩니다.

중요한 개념이니 꼭 이해하고 넘어가세요 ^^

수줍은질럿님의 프로필 이미지
수줍은질럿

작성한 질문수

질문하기