python파2썬
파이썬_다중 for문_심사문제19.6_중첩 루프_중첩반복
woody1505
2021. 8. 20. 15:13
코딩도장_Unit19_별찍기_중첩 루프_중첩반복
이번 다중 for문 다루는 유닛에서 많이 막힐 것이라 생각합니다.
비록 예제에는 for문안에 한개의 for문이 되는 예제가 있지만 for문안에 몇개의 for문도 가능하기 때문에 사고방식을 넒혀야 손쉽게 따라 갈 수 있습니다.
*for문 = 반복문*
#Unit19 중첩루프 사용
for i in range(5):
for j in range(5):
print('j 위치', j ,sep='', end=' ') #sep은 문자 사이에 공간을 물어보는 것, 가로줄
print('i:', i, sep='') #i값 출력, 세로줄 번호.
print()
for a in range(5): #0부터 4까지 5번 반복 세로
for b in range(5): #0부터 4까지 5번 반복 가로
if b == a: #세로방향 변수와 같으면
print('*', end= '') #별 출력
else: #세로방향 변수 다를때
print(' ', end='') #공백 출력
print() #가로 방향 별을 다 그린 뒤 줄 넘어감.
연습문제 19.5
#hint for문을 두개 사용하여 빈칸으로 출력되는 것을 별로 바꾼다. |
#연습문제 19.5
for o in range(5):
for p in range(5):
if p < o:
print(' ', end='')
else :
print('*', end='')
print()
심사문제 19.6
#hint 큰 반복문 안에 반복문 여러개를 사용할 수 있다는 점을 인지합니다. |
#hint2 reversed를 통해 삼각형 반쪽을 만듭니다. |
#hint3 나머지 삼각형은 단순하게 별만 출력을 한다면 가로와 세로에 맞춰서 출력이 가능합니다. |
#심사문제 19.6
height = int(input())
for n in range(height): #입력값 만큼 세로 길이 설정
for m in reversed(range(height)): #첫번째 가로식
if m>n:
print(' ', end='')
else:
print('*', end='')
for m in range(height): #두번째 가로식
if m<n: #첫번째 가로식에 순서에서 옆으로 출력값이 누적이됩니다.
print('*', end='')
print()
결과
3
*
***
*****
7
*
***
*****
*******
*********
***********
*************