간단한 코드인데 도와주세요.
조회수 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 답변
-
출제자의 의도에 비해 난이도가 어처구니없이 배배 꼬여 있는 문제네요. 힌트를 좀 드리겠습니다.
for
는, 목록을 줄 경우 그 목록의 첫번째 항부터 마지막 항까지를 가지고, 같은 행동을 반복 수행합니다. 이때, 특정 조건이 맞으면n
항까지만 그 반복을 하고 중단하게 하고 싶을 수 있죠. 이를테면 9살짜리 초등학생 보고 "1부터 100까지 셀 수 있어? 그럼 1부터 니 나이까지 세어 봐"라고 시킬 때 그렇지요. 그러면 그 초등학생은 1, 2, 3, ..., 9를 센 다음, "10"을 말하려다가 멈칫하고는("break
") "다 셌어"라고 말하고 숫자 세기를 끝낼 수 있어야 합니다. 멈칫하는 법을 모른다면 그 초등학생은 기어코 백까지 숫자를 세고 말 거에요.순회를 구현한 거의 대부분의 프로그래밍 언어가 그렇듯이 파이썬에도 이런 식의 순회 중단 루프 탈출 제어는 존재합니다. 이제 주어진 문제를 봅시다. 2부터 21까지의 자연수를 가지고 뭔가를 반복 수행하는군요. 그런데 그 결과가 2부터 7까지의 숫자를 프린트한 것입니다. 이 프로그램은 아무래도 2부터 세기를 시작하긴 했는데 21까지는 세지 않고 어디쯤에서 멈칫한 것 같군요. 그건 어디쯤일까요? 이 프로그램에게 무엇을 시켜야 그 어디쯤에서 그 반복을 중단하고 루프를 빠져나가게 될까요?
힌트는 여기까지입니다. 행운을 빕니다.
댓글 입력