본문 바로가기

배운다/파이썬

[파이썬] 구구단 548 : 반복제어문2 - 자가진단8

문제

구구단의 일부를 다음과 같이 출력하는 프로그램을 작성하시오.

곱셈의 결과는 오른쪽으로 맞추어 출력을 하고 결과값 사이의 공백은 3칸으로 한다.

출력형식 예) 2_*_1_=__2___ (_는 공백을 나타내는 것임)​

 

출력예

2 * 1 =  2     2 * 2 =  4     2 * 3 =  6     2 * 4 =  8     2 * 5 = 10

3 * 1 =  3     3 * 2 =  6     3 * 3 =  9     3 * 4 = 12     3 * 5 = 15

4 * 1 =  4     4 * 2 =  8     4 * 3 = 12    4 * 4 = 16     4 * 5 = 20

풀이 1 )

for i in range(2,5):
    for j in range(1,10):
        print(i, "*", j, "=", i*j, "   ", end = '')
        if(j == 9):
            print()

풀이 2 )

def make_string(num, i):
    return f"{num} * {i} = {num * i:>2}   "


for i in range(2, 5):
    line = ""
    for j in range(1, 6):
        line += make_string(i, j)
    print(line.strip())

풀이 3 )

i2 = 1
i3 = 1
i4 = 1

while i2 <= 5:
    if 2*i2 < 10:
        print('2 *', i2, '= ', 2*i2, '   ', end='')
        i2 += 1
    else:
        print('2 *', i2, '=', 2*i2, '   ')
        i2 += 1

while i3 <= 5:
    if 3*i3 < 10:
        print('3 *', i3, '= ', 3*i3, '   ', end='')
        i3 += 1
    elif i3 == 5:
        print('3 *', i3, '=', 3*i3, '   ')
        i3 += 1
    else:
        print('3 *', i3, '=', 3*i3, '   ', end='')
        i3 += 1

while i4 <= 5:
    if 4*i4 < 10:
        print('4 *', i4, '= ', 4*i4, '   ', end ='')
        i4 += 1
    elif i4 == 5:
        print('4 *', i4, '=', 4*i4, '   ')
        i4 += 1
    else:
        print('4 *', i4, '=', 4*i4, '   ', end ='')
        i4 += 1

풀이 4 ) 

def string_product(a,b):
    string = f"{a} * {b} =  {a*b:>2}   "
    return string

for i in range(2,5):
    line =""
    for j in range(1,6):
        line = line+string_product(i,j)
    
    print(line.strip())