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 |