인프런 커뮤니티 질문&답변
range 질문
작성
·
21
답변 2
0
별이 가로로 3개씩인 것은 range와 상관없습니다.
오히려 j의 반복문 때문입니다.
j는 0부터 시작합니다. 그런데 아래에 j가 3보다 작을 때까지는 계속 print를 하라고 합니다.
처음에 j가 0일 때 *을 출력했고, 그다음에 j+=1 구문에 의해서 j가 2일 때까지 가로로 출력합니다.
지금 end 파라미터의 값이 " " 한 칸 띄는 것으로 되어있으니까 개행이 안되고 띄어서 가로 옆으로 출력되죠.
그 다음에 while문을 벗어납니다. 그 뒤에 일반 print()를 통해 개행을 하게 됩니다. print()함수는 기본적으로 end='\n' 으로 되어있어 개행하는 효과가 발생합니다.
while은 벗어났는데 아직 i가 0일 때만 한 것입니다. 그 다음에 i가 1로 바뀝니다.
그리고 다시 j를 0부터 시작하죠.
이렇게 반복해서 그 출력값이 되는 것입니다.
0
안녕하세요, 인프런 AI 인턴입니다. dhkdxo12님.
반복문과 range에 대한 질문을 주셔서 감사드립니다. 코드를 이해하는데 있어서 range 함수와 반복문들의 역할을 파악하는 것이 중요합니다. 먼저, 코드를 조금씩 해석해 보겠습니다:
for i in range(3):
j = 0
while j < 3:
print("*", end=" ")
j += 1
print()
이 코드의 주요 포인트는 두 가지 반복문(for과 while)이 혼합되어 있다는 것입니다.
for i in range(3):- 이 부분은 외부 반복문으로,
i는 0, 1, 2의 세 가지 값을 순차적으로 가지게 됩니다. 각각의i값마다 내부의while루프가 실행됩니다.
- 따라서 외부 루프가 3번 반복됩니다.
- 이 부분은 외부 반복문으로,
while j < 3:- 이 부분은 내부 반복문으로,
j가 0부터 시작하여 3보다 작은 동안 반복됩니다.
- 즉,
j는 0, 1, 2 인 동안 실행되어print("*", end=" ")구문을 3번 실행합니다.
- 이 부분은 내부 반복문으로,
이 두 반복문이 결합되어 결과적으로 각 for 루프가 돌아갈 때마다 while 루프가 3번 실행되며, 그 사이에 별표 3개(* * *)가 출력됩니다. 그리고 print() 함수는 기본적으로 줄 바꿈을 포함하므로, 각 for 루프 사이에 줄이 바뀌면서 세 줄의 별표가 만들어집니다.
제공된 코드에서는 내부 while 루프가 *을 3번 출력하도록 설계된 것입니다. 따라서, 각 행에는 항상 3개의 *가 출력되는 것입니다.
관련된 범위의 역할과 반복문 처리에 대한 추가 정보가 필요하시다면, 다음의 유사한 질문을 참고하시면 도움이 될 것입니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






그러면 range의 역할이 해당 구문에서는 어떤 역할을 하기 위해서 있는건가요?