inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

while(3-1) : for 문법과는 조금 달라요

예제8번 질문입니다.

234

작성자 없음

1

안녕하세요. 마지막 예제8번 강의 설명이 잘 이해가 안 되는데, 코드 해석좀 다시 부탁드립니다.

a = ['foo', 'bar', 'baz']

while True:

    if not a:

        break

    print(a.pop())

예제8 python

답변 2

3

김현지

안녕하세요, Openhaed님!

a = ['foo', 'bar', 'baz']

while True:

# ....

a라는 리스트를 선언해주고, while의 조건을 True로 설정해 break문에서만 while문이 끝나도록 설정해줍니다.

if not a:

break

위의 코드는 a에 더 이상 요소가 없을 때, 즉 a의 리스트 길이가 0이 될 때 break를 실행하는 코드입니다.

print(a.pop())

마지막으로 a.pop()이라는 코드는 리스트의 pop 함수를 실행합니다.

pop 함수는 리스트의 마지막 요소를 제거하며 반환합니다.

따라서, while문의 순회에 따라 a 리스트의 변화는

  • ['foo', 'bar', 'baz']

  • ['foo', 'bar']

  • ['foo']

  • []

위와 같습니다.

따라서 4번째 순회때 리스트의 요소가 없으므로 break문이 실행되면서 while 루프문을 빠져나오게 됩니다.

혹시 궁금한 점이 있으시다면 댓글 남겨주세요.

해결이 되었으면 좋겠습니다. :)

0

haon

안녕하세요. 먼저 가볍게 설명할게요.

a에는 foo와 bar와 baz가 들어있습니다.

while True는 무한반복입니다.

if not a는 a가없으면 ~라는 뜻입니다.

break 는 (반복)종료입니다.

a.pop()가 무엇을버리는지 모르는것같은데 pop는 가장마지막의 요소를 버린다는것입니다.

(a.pop(0)는 처음요소를버립니다.)

그래서 a마지막요소가 없어지고나서는 출력이 안될것같지만 print(a.pop())는 출력하고나서 삭제됩니다.

그래서 흐름은 'foo', 'bar', 'baz'

남아있음 리스트['foo', 'bar']출력:'baz'

남아있음 리스트['foo']출력:'bar', 'baz'

남아있음 리스트[]출력:'foo', 'bar', 'baz'

비었음: break

모르는게있으면 물어보세요!

Python: Select Interpreter 오류

0

38

1

54강 4분 41초에서 질문 있어요.

0

53

1

import

0

37

1

45강 예제4번에서 질문 있어요!

0

52

1

45강 강의 10분 03초 내용에서 x + 1 을 하는 이유는 뭔가요?

0

46

1

3강, 7강 화면이 안나옵니다. 그냥 검은화면으로만 노출되요;;

0

46

1

41강 1분 39초 영상에서 import test_module이 조회 안 돼요.

0

50

1

29강 while(3-1) 5분 20초 강의 영상 질문

0

47

0

pcskjs@naver.com

0

56

1

인터프리터 설정이 안됩니다.

1

71

1

Python formatter 설치

0

41

1

자료 다운로드 위치 확인 부탁드립니다.

0

47

2

보라색 예약어

0

47

1

#을 붙이는 이유

0

45

1

실행이 안 되는데요.

0

54

1

print 문법 실행 안 돼요.

0

51

1

영문 계정

0

46

1

맥북에서 아이패드로 연결해서 보려고 하면 화면이 안뜹니다.

0

38

1

인스턴스 변수 문의

0

80

1

챕터 03_04 (튜플) 교육자료

0

87

2

Package(3-1) Sub 폴더 자료

0

69

1

아톰 출력 안됨

0

115

2

강의자료 메일 발송 요청 드립니다.

0

118

1

강의자료 메일로 보내주실 수 있으실까요?

1

77

0