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
      *
     ***
    *****
   *******
  *********
 ***********
*************