Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬(Python)으로 알파벳 'G' 패턴 출력하는 프로그램

별표(*) 기호를 사용해 알파벳 'G' 모양의 패턴을 화면에 출력해야 하는 경우가 있습니다. 이럴 때는 패턴을 그려주는 함수를 하나 정의한 뒤, 중첩 반복문(nested loop)으로 행과 열을 순회하면서 조건에 맞는 좌표에만 '*' 문자를 찍으면 'G' 형태를 완성할 수 있습니다.

아래에서 실제 동작 예시를 확인해 보겠습니다.

예제 코드

def display_pattern(my_line):
    my_pattern = ""
    mid = (my_line - 1) // 2
    for i in range(my_line):
        for j in range(my_line):
            if ((j == 1 and i != 0 and i != my_line - 1)
                    or ((i == 0 or i == my_line - 1) and j > 1 and j < my_line - 2)
                    or (i == mid and j > my_line - 5 and j < my_line - 1)
                    or (j == my_line - 2 and i != 0 and i != my_line - 1 and i >= mid)):
                my_pattern = my_pattern + "*"
            else:
                my_pattern = my_pattern + " "
        my_pattern = my_pattern + "\n"
    return my_pattern

num_line = 8
print("글자 G 패턴은 아래와 같습니다 :")
print(display_pattern(num_line))

출력 결과

글자 G 패턴은 아래와 같습니다 :
  ****
 *
 *
 *  ***
 *    *
 *    *
 *    *
  ****

코드 설명

  • 'display_pattern'이라는 이름의 함수를 정의하고, 그릴 줄의 개수를 매개변수로 전달받습니다.

  • 중첩 for 루프를 사용해 바깥 루프는 행(row), 안쪽 루프는 열(column)을 순서대로 순회합니다.

  • 각 좌표(i, j)가 조건식을 만족하면 해당 위치에 '*'를 추가하고, 그렇지 않으면 공백(' ')을 추가합니다.

  • 한 행이 끝날 때마다 줄바꿈 문자('\n')를 붙여 다음 줄로 넘어갑니다.

  • 모든 반복이 종료되면 완성된 패턴 문자열을 반환하며, 이 값이 콘솔에 출력됩니다.

  • 루프가 모두 끝나면 제어 흐름이 반복문 밖으로 빠져나오면서 프로그램이 정상적으로 마무리됩니다.

조건식이 의미하는 부분

  • 왼쪽 세로줄: 첫 번째 조건(j == 1)이 위·아래 가장자리를 제외한 왼쪽 세로 선을 담당합니다.

  • 위·아래 가로줄: 두 번째 조건이 첫 행과 마지막 행의 가로 선을 그립니다.

  • 중앙 가로 막대: 세 번째 조건이 'G' 특유의 안쪽 가로 막대를 표현합니다.

  • 오른쪽 아래 세로줄: 네 번째 조건이 중앙 아래쪽의 오른편 세로 선을 그려 'G'의 꼬리 부분을 완성합니다.

참고로 파이썬 3에서 나눗셈 연산자 '/'는 항상 실수(float)를 반환하므로, 중앙 행 위치를 구할 때는 몫 연산자 '//'를 사용해 정수로 계산하는 것이 안전합니다. 줄 수를 변경하면 다양한 크기의 'G' 패턴을 손쉽게 출력할 수 있습니다.