간단한 코드인데 도와주세요.

조회수 389회
for i in range(2, 21):
    if i == 8:
        print()
        ####소스코드####
    print(i, end= ' ')
출력값 :
2 3 4 5 6 7

출력값이 이렇게 나오게 하려면 ####소스코드####에 어떤 코드가 들어가야 할까요?

i[0:8]
i<8
i[:8]

다 넣어봤는데 아무리생각해도 답을 모르겠네요.

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    출제자의 의도에 비해 난이도가 어처구니없이 배배 꼬여 있는 문제네요. 힌트를 좀 드리겠습니다.


    for는, 목록을 줄 경우 그 목록의 첫번째 항부터 마지막 항까지를 가지고, 같은 행동을 반복 수행합니다. 이때, 특정 조건이 맞으면 n항까지만 그 반복을 하고 중단하게 하고 싶을 수 있죠. 이를테면 9살짜리 초등학생 보고 "1부터 100까지 셀 수 있어? 그럼 1부터 니 나이까지 세어 봐"라고 시킬 때 그렇지요. 그러면 그 초등학생은 1, 2, 3, ..., 9를 센 다음, "10"을 말하려다가 멈칫하고는("break") "다 셌어"라고 말하고 숫자 세기를 끝낼 수 있어야 합니다. 멈칫하는 법을 모른다면 그 초등학생은 기어코 백까지 숫자를 세고 말 거에요.

    순회를 구현한 거의 대부분의 프로그래밍 언어가 그렇듯이 파이썬에도 이런 식의 순회 중단 루프 탈출 제어는 존재합니다. 이제 주어진 문제를 봅시다. 2부터 21까지의 자연수를 가지고 뭔가를 반복 수행하는군요. 그런데 그 결과가 2부터 7까지의 숫자를 프린트한 것입니다. 이 프로그램은 아무래도 2부터 세기를 시작하긴 했는데 21까지는 세지 않고 어디쯤에서 멈칫한 것 같군요. 그건 어디쯤일까요? 이 프로그램에게 무엇을 시켜야 그 어디쯤에서 그 반복을 중단하고 루프를 빠져나가게 될까요?


    힌트는 여기까지입니다. 행운을 빕니다.

    • break네요 답변해주셔서 정말 감사합니다 moneyprogramming 2022.5.9 23:55

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)