-
[Python 실습] 파이썬 for문 별 찍기Python/Python 실습 2022. 7. 26. 11:05
중첩 for문을 통해 5가지 별찍기 문제를 해결하고자 한다.
for문을 연습하기에는 별찍기가 제일 좋다고 하여, 시도하게 되었다.
1. 간단한 2차원 배열의 별찍기
for i in range(3): # row = 3 for j in range(4): # column = 4 print("*", end='') print()
2. 삼각형 모양 별 찍기
for i in range(3): # row = 3 for j in range(3): # column = 3 if i>=j: # row >= column일 경우 별을 찍습니다. print("*", end=''); print()
row를 3, column을 3으로 설정한 후, row의 인덱스 번호가 column의 인덱스 번호보다 크거나 같을 때 별을 찍었다.
3. 삼각형 모양 별 찍기 (y축 대칭)
for i in range(3): # row = 3 for j in range(3, 0, -1): # column = 3, 2, 1 하면서 내려옴 if j>i+1: # column이 1부터 시작하기에 i+1 적용, j가 i보다 더 크면 빈칸 찍기 print(" ", end='') else: # 그 이외에는 별 찍기 print("*", end='') print()
row를 3, column을 3으로 설정 후, j를 3부터 시작하여 j-- 를 진행하고, j보다 i가 더 크면 별을 찍는 구조로 설계했다.
4. 피라미드 모양 별 찍기
row = 3; for i in range(0, row): for j in range(1, row-i): # 빈칸 순서대로 찍기 print(" ", end='') for j in range(0, i*2+1): # 별이 찍히는 개수 = i*2+1이므로 범위 설정 print("*", end='') print()
피라미드는 빈칸과 별이 찍히는 부분을 집중해서 구현해 보았다.
for문 안에 for문을 두개 넣어, 빈칸을 찍는 for문과 별을 찍는 for문을 구분하여 구현하였다.
5. input()으로 홀수를 입력받아 그에 맞는 다이아몬드 모양의 별 찍기
num = int(input('홀수 숫자를 입력하세요. : ')) # 크기를 입력 받음 start6 = num//2; # 별이 찍히기 시작하는 장소 end6 = num//2; # 별이 찍히는게 끝나는 장소 middle6 = num//2; # row, column의 중간 for i in range(num): # row = num for j in range(num): # column = num if j >= start6 and j <= end6: # j >= num/2 and j <= num/2 print("*", end='') # 별을 찍는다. else: print(" ", end='') if i < middle6: # i가 middle보다 작으면 start6 -= 1; # start는 -1씩 내린다. end6 += 1; # end는 -1씩 올린다. print() elif i >= middle6: # i가 middle보다 크거나 같으면 start6 += 1; # start는 +1씩 올린다. end6 -= 1; # end는 -1씩 내린다. print()
위의 결과물은 입력값을 7으로 받았을 때의 결과물이다.
필드로 별이 찍히기 시작하는 장소(start)와 별 찍히기가 끝나는 장소(end), row와 column의 가운데인 middle을 두었다.
middle을 기준으로 위, 아래를 나누어 별을 찍었으며, 시작점과 끝점을 +-1씩 해가며 별을 찍었다.
'Python > Python 실습' 카테고리의 다른 글
[Python 실습] 성적 관리 프로그램(class 사용) (1) 2022.07.29 [Python 실습] 성적 관리 프로그램(파일 사용) (0) 2022.07.29 [Python 실습] 파이썬 while문 별 찍기 (0) 2022.07.26 [Python 실습] 로또 프로그램 만들기 (0) 2022.07.26 [Python 실습] 파이썬 사칙연산 계산기 (0) 2022.07.26