반응형
#모든 메소드는 "*"과 "" 을 가지고 result에 별을 추가하는 방식
def one(star, result):
for i in range(4):
for j in range(5):
result += star
#result 에 별을 추가하는 작업을 4번하기
result += "\n"
#직사각형을 위해 줄바꿈 추가
return result
def two(star, result):
for i in range(4):
for j in range(i):
#j반복문에 들어올때마다 i가 커짐 -> 별을 추가하는 작업이 추가된다.
result += star
result += "\n"
return result
def three(star, result):
for i in range(1,4):
#마름모의 높이만큼 반복
for j in range(3 - i, 0, -1):
#높이가 3이고 i가 1씩 커질때마다 공백이 줄어든다.
result += " "
result += star * i
result += "\n"
return result
def four(star, result):
j = 2 #높이가 고정되있으므로 공백을 2로 고정시키고, 반복문 종료마다 한개씩 줄어듬
for i in range(1, 6, 2):
result += " " * j
result += star * i
result += "\n"
j -= 1
return result
def five(star, result):
l = 3
result = four(star, result)#마름모 윗뚜껑 가져오기
for i in range(1, 3):
#k를 공백의갯수로 잡고 마름모 밑부분 추가
result += " " * i
result += star * l
result += "\n"
l -= 2
return result
def six(num, result):
a = int(num / 2) # int 로 형변환 하여 소숫점 없애기
l = int(num / 2) # 마름모 밑부분의 행의 갯수와 동일
for i in range(1, num + 1, 2):
result += " " * a
result += "*" * i
result += "\n"
a -= 1
for k in range(1, l + 1, 1):
num -= 2
result += " " * k
result += "*" * num
result += "\n"
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] 다양한 별찍기 (while문) (0) | 2022.07.26 |
[python] 사칙연산 계산기 (0) | 2022.07.26 |
[python] 백준 알고리즘 2480번 주사위 세개 (0) | 2022.07.25 |