본문 바로가기
dev/python

[python] 파이썬 구구단

by 최연탄 2020. 12. 4.
728x90
반응형

간단 버전

2차원 배열을 이용해 단순 곱셈 출력

1
2
3
4
for i in range(210):
    for j in range(110):
        print(f'{i} x {j} = {i * j}')
    print()
cs

화면가득 채우기 버전

각각의 구구단을 화면에 꽉 채우기 위해 화면 크기와 구구단 크기를 계산, 위에서 아래로 한꺼번에 출력하도록 작성
Python 3은 변수명을 유니코드로도 작성할 수 있음

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import math
 
 
def print_element_row(base_list, multiply, element_width):
    row_string = ''
 
    for base in base_list:
        row_string += f'{base} x {multiply} = {base * multiply}'.ljust(element_width)
 
    print(row_string)
 
 
def print_row(base_list, multiply_list, element_width):
    for number in multiply_list:
        print_element_row(base_list, number, element_width)
 
    print()
 
 
def get_row_base_list(base_list, row, column_count):
    row_base_list = []
 
    for column in range(0, column_count):
        index = (row * column_count) + column
 
        if index < len(base_list):
            row_base_list.append(base_list[index])
        else:
            break
 
    return row_base_list
 
 
def print_multiplication_tables(base_list, multiply_list, screen_width, element_width):
    column_count = math.floor(screen_width / element_width)
    total_row = math.ceil(len(base_list) / column_count)
    row_base_list = []
    
    for row in range(0, total_row):
        row_base_list = get_row_base_list(base_list, row, column_count)
        print_row(row_base_list, multiply_list, element_width)
        row_base_list.clear()
 
 
화면_가로_길이 = 80
각_단_가로_길이 = 12
단_수_목록 = list(range(210))
곱할_수_목록 = list(range(110))
 
print_multiplication_tables(단_수_목록, 곱할_수_목록, 화면_가로_길이, 각_단_가로_길이)
 
cs

반응형

댓글