다중 반복문1

2022. 9. 24. 01:39파이썬(Python)

반응형

1. 사각형 출력

- 3 X 4 크기의 격자에 별(*)을 출력

****
****
****

 

- 각 줄마다 4개의 별을 출력.  =>  for문 활용

for _ in range(4):
    print('*',end='')
print()

for _ in range(4):
    print('*',end='')
print()

for _ in range(4):
    print('*',end='')
print()

 

- 별을 4번 출력하는 코드를 3번 반복  =>  이 역시 for문으로 묶음.

for _ in range(3):
    for _ in range(4):
        print('*',end='')
    print()

- 바깥 for문  =>  행(세로줄)에 관여

- 안쪽 for문  =>  열(가로줄)에 관여

- 4개의 별을 출력 후 한 줄씩 띄워야 함  =>  print()

 

※ i, j의 변수를 사용하여 이해하기.

for i in range(3):
    for j in range(4):
        print('*',end='')
    print()
i\j  0 1 2 3
0    * * * *
1    * * * *
2    * * * *

 

● 예외

for _ in range(3):
    for _ in range(4):
        print('*',end='')

- 한 줄을 띄워주는 코드가 없음  =>  한 줄에 4개의 별을 출력하고 띄워주지 않고 일렬로 출력

************

 

for _ in range(3):
    for _ in range(4):
        print('*',end='')
        print()

- 별을 출력하고 계속 한 줄을 띄움.  =>  별 1개가 한 줄에 하나씩 출력

*
*
*
*
*
*
*
*
*
*
*
*

Q) 사각형 별표 출력

- 두 수 a, b를 입력하여 aXb 사각형을 출력.

inp=input().split()
a,b=int(inp[0]),int(inp[1])

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

결과

>> 5 3
* * * 
* * *
* * *
* * *
* * *

2. 직각삼각형 출력

예시)

*
**
***
****

- 행이 1 증가할 때, 열도 1 증가함.

- 한 줄씩 출력하면서 별도 1개씩 추가

for i in range(4):
    for j in range(i+1):
        print('*',end='')
    print()

Q) 역 직각삼각형 출력

- 자연수 n을 입력. n 줄로 구성된 역 직각삼각형 출력

n=int(input())

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

결과

>> 4
****
***
**
*

Q) 직각삼각형 출력 (심화)

>> 3
*
** **
*** *** ***
>> 4
*
** **
*** *** ***
**** **** ****

 

n=int(input())

for i in range(n):
    for j in range(i+1):
        for k in range(i+1):
            print('*',end='')
        print(end=' ')
    print()

3. 행 대칭 출력

예시)

>> 3
*
**
***
**
*

 

- 두 부분으로 나누기

# 1
*
**
***

# 2
**
*

- 1번에서, 행이 1 증가하면서 열도 1 증가 (직각삼각형 출력)

- 2번에서, 행이 1 증가하면서 열은 1 감소 (역 직각삼각형 출력)

 

별 개수
0 1
1 2
2 3
3 2
4 1

- n=3일 때 행이 3보다 작은 0,1,2 일 때 별 개수가 증가

- 행이 3보다 크거나 같을 때 별 개수가 감소

- 전체 행의 개수(n+(n-1))에서 n을 기준으로 조건에 따른 cnt 개수로 별 출력

 

n=int(input())

cnt=0
for i in range(2*n-1):
    if i<n:
        cnt+=1
    else:
        cnt-=1
    for j in range(cnt):
        print('*',end='')
    print()

 결과

>> 5
*
**
***
****
*****
****
***
**
*

Q) 행 대칭 출력 (왕관 모양)

예시)

>> 3

* * *
* *
*
* *
* * *
n=int(input())

cnt=n+1
for i in range(2*n-1):
    if i<n:
        cnt-=1
    else:
        cnt+=1

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

4. 열 대칭 출력

예시)

>> 3
  *
 ***
*****

- 행이 1 증가  =>  별 개수가 2개 증가

- 첫 번째 줄 공백 2개, 두 번째 줄 공백 1개, 세 번째 줄 공백 0개

 

별 개수 공백 개수
0 1 2
1 3 1
2 5 0
n=int(input())

for i in range(n):
    # 공백
    for j in range(n-1-i):
        print(' ',end='')
    
    # 별
    for j in range(2*i+1):
        print('*',end='')
    
    print()

 

- 위의 코드 결과를 거꾸로 출력

n=int(input())

for i in range(n):
    for j in range(i):
        print(' ',end='')
    for j in range(2*n-1-2*i):
        print('*',end='')
    print()

결과

>> 5
*********
 *******
  *****
   ***
    *

Q) 2개의 대칭 직각삼각형

예시)

>> 3
******
**  **
*    *
>> 4
********
***  ***
**    **
*      *

 

n=int(input())

for i in range(n):
    for j in range(n-i):
        print('*',end='')
    for j in range(2*i):
        print(' ',end='')
    for j in range(n-i):
        print('*',end='')
    print()

 

 

'파이썬(Python)' 카테고리의 다른 글

다중 반복문3  (0) 2022.09.25
다중 반복문2  (0) 2022.09.24
반복문 활용4  (0) 2022.09.22
반복문 활용3  (0) 2022.09.21
반복문 활용2(합, 곱)  (0) 2022.09.20