반응형
#모든 메소드는 "*"과 "" 을 가지고 result에 별을 추가하는 방식
def one(star, result):
cnt = 4
while cnt > 0:
ct = 5
while ct > 0:
result += star
ct -= 1
result += "\n"
cnt -= 1
return result
def two(star, result):
cnt = 0
while cnt < 4:
j = 0
while j < cnt:
result += star
j += 1
result += "\n"
cnt += 1
return result
def three(star, result):
cnt = 1
while cnt < 4:
j = 3 - cnt
while j > 0:
result += " "
j -= 1
result += star * cnt
result += "\n"
cnt += 1
return result
def four(star, result):
cnt = 1 #높이가 고정되있으므로 공백을 2로 고정시키고, 반복문 종료마다 한개씩 줄어듬
j = 2
while cnt < 6:
result += " " * j
result += star * cnt
result += "\n"
cnt += 2
j -= 1
return result
def five(star, result):
l = 3
result = four(star, result)#마름모 윗뚜껑 가져오기
cnt = 1
while cnt < 3:
#k를 공백의갯수로 잡고 마름모 밑부분 추가
result += " " * cnt
result += star * l
result += "\n"
l -= 2
cnt += 1
return result
def six(num, result):
a = int(num / 2) # int 로 형변환 하여 소숫점 없애기
l = int(num / 2) # 마름모 밑부분의 행의 갯수와 동일
cnt = 1
while cnt < num + 1:
result += " " * a
result += "*" * cnt
result += "\n"
a -= 1
cnt += 2
ct = 1
while ct < l+1:
num -= 2
result += " " * ct
result += "*" * num
result += "\n"
ct += 1
return result
star = "*"
start = ""
menu = int(input("원하는 과제를 쓰세요 1 ~ 6 : "))
if menu == 1:
print(one(star, start))
elif menu == 2:
print(two(star, start))
elif menu == 3:
print(three(star, start))
elif menu == 4:
print(four(star, start))
elif menu == 5:
print(five(star, start))
elif menu == 6:
me = int(input("출력할 마름모의 값을 입력하시오 : "))
if me % 2 == 1:
print(six(me, start))
else:
print("홀수만 입력해주세요!")
else:
print("잘못 입력했습니다!")
반응형
'python' 카테고리의 다른 글
[Python] 몰입형 코딩도장 3~12 심사문제 (0) | 2022.07.27 |
---|---|
[Python] 로또 경우의 수 프로그램 (0) | 2022.07.26 |
[Python] 다양한 별찍기 (for문) (0) | 2022.07.26 |
[python] 사칙연산 계산기 (0) | 2022.07.26 |
[python] 백준 알고리즘 2480번 주사위 세개 (0) | 2022.07.25 |