range 질문
반복문과 range 강의 챕터 4:51
for i in range(3):
j=0
while j<3:
print("*", end=" ")
j+=1
print()
위 구문에 대해서 range 의미를 잘 모르겠습니다.
range(3)이니까 0~2까지 해서 3개가 된다는 것은 이해가 됐고, 개행이 2번 되어 행이 3개가 된다는 것은 이해가 됐습니다.
하지만 왜 각 행마다 개수가 range의 어떤 역할 때문에 *이 3개씩 있는지 이해가 되지 않습니다.
답변 2
1
별이 가로로 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개의 *가 출력되는 것입니다.
관련된 범위의 역할과 반복문 처리에 대한 추가 정보가 필요하시다면, 다음의 유사한 질문을 참고하시면 도움이 될 것입니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
75강 26년 1회 코드 문제 해석 강의 질문 드립니다.
0
2
1
모의고사
0
11
1
17강 28:26
0
12
1
C언어 기출문제 변형에서 6번 문제입니다. 20:56
0
11
3
17강 22:38
0
20
2
16강 2:17
0
20
2
부모 및 자식 생성자 출력 관련
0
11
1
부모 및 자식 생성자 출력
0
15
2
9강 35분경 질문있습니다
0
25
2
11강 3:20
0
27
2
10강 11:42
0
27
2
9강 26:23
0
44
2
9강 23:46
0
31
2
코드 중간에 . 붙은건 뭐라고 봐야할까요?
0
45
2
설명중 단어 의미 해석 문제.
0
29
1
수강 섹션마다 옆에 자료 다운로드 버튼이 있는데. 다운받으면 무슨내용이 있는건가요?
0
21
1
SQL 집중학습
0
41
1
NULL과 0
0
46
2
26년 1회 기출문제 11번 질문드립니다
0
46
1
업캐스팅 문제예시5 & 업캐스팅 문제 예시 6
0
45
2
V1.2 VS V.091
0
49
2
split('T')일때는 T만 제거되는거고 공백은 제거되지 않는 건가요?
0
50
2
파이썬 언어 업데이트, 언어별 학습자료 업데이트
0
48
2
C, java, python 언어 기출문제 강의 질문
0
52
2





