● 중첩 루프를 사용하여 아래와 같은 계단식 *(별, 아스테리스크)를 출력하기
*
**
***
****
*****
다음과 같이 반복문 안에 반복문이 들어가는 형태를 중첩 루프(다중 루프)라고 한다. 그리고 반복문의 루프 인덱스 변수는 index의 첫 글자를 따서 i를 사용하는데, 반복문 안에 반복문이 들어갈 때는 변수 이름을 i, j, k처럼 i부터 알파벳 순서대로 짓는다. 여기서는 반복문이 두 개이므로 i와 j를 사용한다.(변수 이름을 i와 j로 짓는 것은 강제된 사항은 아니지만 오래 전부터 관례적으로 사용하고 있다.)
예 | 결과값 |
for i in range(5): # 5번 반복, 바깥쪽 루프는 세로방향 for j in range(5): # 5번 반복, 안쪽 루프는 가로 방향 print('j:', j, sep='', end=' ')# j 값 출력, end에 ' '를 지정하여 줄바꿈 대신 한 칸 띄움 print('i:', i, '\\n', sep='') # i 값 출력, 개행 문자 모양도 출력 # 가로 방향으로 숫자를 모두 출력한 뒤 다음 줄로 넘어감 # (print는 기본적으로 출력 후 다음 줄로 넘어감) |
j:0 j:1 j:2 j:3 j:4 i:0\n j:0 j:1 j:2 j:3 j:4 i:1\n j:0 j:1 j:2 j:3 j:4 i:2\n j:0 j:1 j:2 j:3 j:4 i:3\n j:0 j:1 j:2 j:3 j:4 i:4\n |
설명 | |
출력 결과가 좀 복잡해 보이지만 간단한 내용입니다. 먼저 바깥쪽 루프로 시작하여 안쪽 루프가 가로 방향으로 j 값을 출력합니다. end에는 줄바꿈을 하지 않기 위해서 ' '를 지정했습니다. 여기서는 각 값이 붙어서 출력되지 않도록 ''대신 ' '을 지정하여 공백 한 칸을 띄워주었습니다. 그리고 가로 방향이 출력이 끝나면 바깥쪽 루프에서 i 값과 개행 문자를 출력하여 세로 방향을 처리하게 됩니다. 여기서는 \n을 화면에 직접 보여주기 위해 \\n으로 출력했습니다. |
5 X 5 별상자 만들기 | 3 X 7 별상자 만들기 |
for i in range(5): # 5번 반복, 바깥쪽 i는 세로방향 for j in range(5): # 5번 반복, 안쪽 j는 가로방향 print('*', end='') # 별 출력, end에 ''를 지정하여 줄바꿈을 하지 않음 print() # 가로 방향으로 별을 다 그린 뒤 다음 줄로 넘어감 |
for i in range(3): for j in range(7): print('★', end='') print() |
결과값 | 결과값 |
***** ***** ***** ***** ***** |
★★★★★★★ ★★★★★★★ ★★★★★★★ |
대각선 별 출력하기 | 대각선 별 출력하기 |
for i in range(5): # 0부터 4까지 5번 반복. 세로 방향 for j in range(5): # 0부터 4까지 5번 반복. 가로 방향 if j == i: # 세로 방향 변수와 같을 때 print('*', end='') # 별 출력. end에 ''를 지정하여 줄바꿈을 하지 않음 print() # 가로 방향으로 별을 다 그린 뒤 다음 줄로 넘어감 |
for i in range(5): # 0부터 4까지 5번 반복. 세로 방향 for j in range(5): # 0부터 4까지 5번 반복. 가로 방향 if j == i: # 세로 방향 변수와 같을 때 print('*', end='') # 별 출력. end에 ''를 지정하여 줄바꿈을 하지 않음 else: # 세로 방향 변수와 다를 때 print(' ', end='') # 공백 출력. end에 ''를 지정하여 줄바꿈을 하지 않음 print() # 가로 방향으로 별을 다 그린 뒤 다음 줄로 넘어감 |
결과값 | 결과값 |
* * * * * |
* * * * * |
'Programming > Python' 카테고리의 다른 글
[코딩도장-파이썬] 리스트(List)와 튜플(Tuple) 응용하기 1 (0) | 2020.11.18 |
---|---|
[코딩도장-파이썬] 터틀 그래픽스 (0) | 2020.11.17 |
[코딩도장-파이썬] break, continue 를 통한 반복문 제어 (0) | 2020.11.15 |
[코딩도장-파이썬] while 반복문 (0) | 2020.11.15 |
[코딩도장-파이썬] for 반복문 (0) | 2020.11.14 |