-
[Python 실습] 파이썬 while문 별 찍기Python/Python 실습 2022. 7. 26. 14:47
while문을 통해 5가지 별찍기 문제를 해결하고자 한다.
평소에 for문으로만 짜다보니, while문으로 짜는게 시간이 오래 걸렸다.
1. 간단한 2차원 배열의 별찍기
i=0 while i<3: # row = 3 j=0 while j<4: # column = 4 print("*", end='') j+=1 print() i+=1
2. 삼각형 모양 별 찍기
i=0 while i<3: # row = 3 j=0 while j<=i: # row >= column일 경우 별을 찍습니다. print("*", end='') j+=1 print() i+=1
3. 삼각형 모양 별 찍기 (y축 대칭)
i=0 while i < 3: j = 3 while j > 0: if j>i+1: print(" ", end='') else: print("*", end='') j-=1 print() i += 1
4. 피라미드 모양 별 찍기
i=0 while i<3: j=2 while j>i: print(" ", end='') j-=1 k=0 while k < i*2+1: print("*", end='') k+=1 print() i+=1
솔직히 얘가 제일 헷갈렸다..
처음부터 짜보려고 했으나, 차마 모르겠어서 짰었던 for문으로 돌아가 수정하는 방식으로 짰다.
5. input()으로 홀수를 입력받아 그에 맞는 다이아몬드 모양의 별 찍기
num = int(input('홀수 숫자를 입력하세요. : ')) # 크기를 입력 받음 start6 = num//2; # 별이 찍히기 시작하는 장소 end6 = num//2; # 별이 찍히는게 끝나는 장소 middle6 = num//2; # row, column의 중간 i=0 while i<num: # row = num j=0 while j<num: # column = num if j >= start6 and j <= end6: # j >= num/2 and j <= num/2 print("*", end='') # 별을 찍는다. j+=1 else: print(" ", end='') j+=1 if i < middle6: # i가 middle보다 작으면 start6 -= 1; # start는 -1씩 내린다. end6 += 1; # end는 -1씩 올린다. print() j+=1 elif i >= middle6: # i가 middle보다 크거나 같으면 start6 += 1; # start는 +1씩 올린다. end6 -= 1; # end는 -1씩 내린다. print() j+=1 i+=1
'Python > Python 실습' 카테고리의 다른 글
[Python 실습] 성적 관리 프로그램(class 사용) (1) 2022.07.29 [Python 실습] 성적 관리 프로그램(파일 사용) (0) 2022.07.29 [Python 실습] 로또 프로그램 만들기 (0) 2022.07.26 [Python 실습] 파이썬 for문 별 찍기 (0) 2022.07.26 [Python 실습] 파이썬 사칙연산 계산기 (0) 2022.07.26