티스토리 뷰

19.1 중첩 루프 사용하기

반복문 안에 반복문이 들어가는 형태를 중첩 루프, 다중 루프라고 한다.

for i in range(5):
	for j in range(5):
		print('j:', j, sep='', end=' ')
	print('i:', i, sep='')

j를 5번 출력하고 루프를 나와, i를 1번 출력하는 것을 5번 반복한다는 의미이다.

19.2 사각형으로 별 출력하기

for i in range(5):
	for j in range(5):
		print('*', end='')
	print()

j를 5번 출력하고 루프를 나와, i를 1번 출력하는 것을 5번 반복한다는 의미이다.

*을 5번 출력하는 것을 5번 반복한다는 의미이다.

19.3 계단식으로 별 출력하기

for i in range(5):
	for j in range(5):
		if j <= i:
			print('*', end='')
	print()

j를 5번 반복하는데 조건이 있다. ( j가 i보다 작을 때만 출력하는 것 )

i가 0일 때, j는 0밖에 안되므로 별이 1번 출력되고 루프를 나온다.

19.6 심사문제: 산 모양으로 별 출력하기

x = int(input())
for i in range(x):
    for j in reversed(range(x)):
        if j>i:
            print(' ', end='')
        else:
            print('*', end='')
    for j in range(x):
        if j<i:
            print('*', end='')
    print()

세로 크기를 정해주는 i 반복문을 쓰는데 반복 횟수는 입력한만큼 반복되도록 변수를 지정한다.

우선 산을 반으로 나누어 생각해야 한다.

반복할 때마다 하나씩 늘어나는 코드를 응용하여 왼쪽 산의 공백을 만들어주는데

여기서는 공백이 점점 줄어들어야 하므로 reversed를 사용한다.

(i가 0일 때, j는 4에서 1까지 공백이 출력되고 0일 때 별이 출력됨)

오른쪽 산을 만들어줄때는 별이 늘어나므로 부등호를 바꿔주고 맨 위에 별은 없어야하므로 =은 빼준다.

(i, j가 0 일 때, 첫 줄에는 아무것도 출력이 안되고, i가 1일 때, j는 0이므로 별이 하나 출력된다.)

'Python' 카테고리의 다른 글

[py] 20. FizzBuzz 문제  (0) 2022.01.16
[py] 18. break, continue  (0) 2022.01.16
[py] 17. while 반복문  (0) 2022.01.16
[py] 16. for 반복문  (0) 2022.01.16
[py] 15. elif  (0) 2022.01.16
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday