반응형
dackyy
대기의 연대기
dackyy
전체 방문자
오늘
어제
  • 분류 전체보기 (49)
    • java (7)
    • 코딩테스트 (23)
    • python (10)
    • Network (2)
    • Web (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • java
  • 기본 자료형
  • 배열
  • 제어문
  • 연산
  • 비트 연산자
  • https
  • 조건문
  • switch
  • 증감 연산자
  • SSL
  • 반복문
  • 시프트 연산자
  • 자료형
  • 비교 연산자
  • 논리 연산자
  • 산술 연산자
  • 배열생성
  • TLS
  • 참조 자료형

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
dackyy

대기의 연대기

python

[Python] 다양한 별찍기 (for문)

2022. 7. 26. 11:07
반응형
#모든 메소드는 "*"과 "" 을 가지고 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
    'python' 카테고리의 다른 글
    • [Python] 로또 경우의 수 프로그램
    • [Python] 다양한 별찍기 (while문)
    • [python] 사칙연산 계산기
    • [python] 백준 알고리즘 2480번 주사위 세개
    dackyy
    dackyy

    티스토리툴바