아이티윌_데이터 분석 55기/문제풀이_Python

#3-2. 3일차 퀴즈에 대한 문제풀이 (+ 다양한 print 방법)

ecosso 2026. 5. 13. 18:01

1. 구구단 결과를 아래와 같은 형태로 출력

 

더보기

[ 내 답안 ]

dan1 = list(range(2,10))
dan2 = list(range(1,10))

for j in dan2:
    for i in dan1:
        print(str(i) + ' x '+ str(j) +' = ' + str(i*j).rjust(2,' '), end = '  ')
    print()

dan1 = list(range(2,10))
dan2 = list(range(1,10))

for j in dan2:
    for i in dan1:
        print(str(i) + ' x '+ str(j) +' = ' + str(i*j).rjust(2,' '), end = '  ')
    print()
2 x 1 =  2  3 x 1 =  3  4 x 1 =  4  5 x 1 =  5  6 x 1 =  6  7 x 1 =  7  8 x 1 =  8  9 x 1 =  9  
2 x 2 =  4  3 x 2 =  6  4 x 2 =  8  5 x 2 = 10  6 x 2 = 12  7 x 2 = 14  8 x 2 = 16  9 x 2 = 18  
2 x 3 =  6  3 x 3 =  9  4 x 3 = 12  5 x 3 = 15  6 x 3 = 18  7 x 3 = 21  8 x 3 = 24  9 x 3 = 27  
2 x 4 =  8  3 x 4 = 12  4 x 4 = 16  5 x 4 = 20  6 x 4 = 24  7 x 4 = 28  8 x 4 = 32  9 x 4 = 36  
2 x 5 = 10  3 x 5 = 15  4 x 5 = 20  5 x 5 = 25  6 x 5 = 30  7 x 5 = 35  8 x 5 = 40  9 x 5 = 45  
2 x 6 = 12  3 x 6 = 18  4 x 6 = 24  5 x 6 = 30  6 x 6 = 36  7 x 6 = 42  8 x 6 = 48  9 x 6 = 54  
2 x 7 = 14  3 x 7 = 21  4 x 7 = 28  5 x 7 = 35  6 x 7 = 42  7 x 7 = 49  8 x 7 = 56  9 x 7 = 63  
2 x 8 = 16  3 x 8 = 24  4 x 8 = 32  5 x 8 = 40  6 x 8 = 48  7 x 8 = 56  8 x 8 = 64  9 x 8 = 72  
2 x 9 = 18  3 x 9 = 27  4 x 9 = 36  5 x 9 = 45  6 x 9 = 54  7 x 9 = 63  8 x 9 = 72  9 x 9 = 81

  

 

[ 문제풀이 ]

for i in range(1,10) :
    for j in range(2,10) :
        print(str(j) + ' X ' + str(i) + ' = ' + '%2d' % (i*j), end = '   ')
    print()

for i in range(1,10) :
    for j in range(2,10) :
        print(str(j) + ' X ' + str(i) + ' = ' + '%2d' % (i*j), end = '   ')
    print()
2 X 1 =  2   3 X 1 =  3   4 X 1 =  4   5 X 1 =  5   6 X 1 =  6   7 X 1 =  7   8 X 1 =  8   9 X 1 =  9   
2 X 2 =  4   3 X 2 =  6   4 X 2 =  8   5 X 2 = 10   6 X 2 = 12   7 X 2 = 14   8 X 2 = 16   9 X 2 = 18   
2 X 3 =  6   3 X 3 =  9   4 X 3 = 12   5 X 3 = 15   6 X 3 = 18   7 X 3 = 21   8 X 3 = 24   9 X 3 = 27   
2 X 4 =  8   3 X 4 = 12   4 X 4 = 16   5 X 4 = 20   6 X 4 = 24   7 X 4 = 28   8 X 4 = 32   9 X 4 = 36   
2 X 5 = 10   3 X 5 = 15   4 X 5 = 20   5 X 5 = 25   6 X 5 = 30   7 X 5 = 35   8 X 5 = 40   9 X 5 = 45   
2 X 6 = 12   3 X 6 = 18   4 X 6 = 24   5 X 6 = 30   6 X 6 = 36   7 X 6 = 42   8 X 6 = 48   9 X 6 = 54   
2 X 7 = 14   3 X 7 = 21   4 X 7 = 28   5 X 7 = 35   6 X 7 = 42   7 X 7 = 49   8 X 7 = 56   9 X 7 = 63   
2 X 8 = 16   3 X 8 = 24   4 X 8 = 32   5 X 8 = 40   6 X 8 = 48   7 X 8 = 56   8 X 8 = 64   9 X 8 = 72   
2 X 9 = 18   3 X 9 = 27   4 X 9 = 36   5 X 9 = 45   6 X 9 = 54   7 X 9 = 63   8 X 9 = 72   9 X 9 = 81

 

# =============================================================================
# ** 다양한 print 방법
# =============================================================================

name = '홍길동'
age = '20'


print('이름은 name이고, 나이는 age입니다.')                          # name, age 변수의 값이 출력되지 않는다.
print('이름은 %s이고, 나이는 %s입니다.' % (name, age))      # name, age 변수의 값이 출력할 문자열에 전달된다.
print('이름은 {}이고, 나이는 {}입니다.'.format(name, age))     # name, age 변수의 값이 출력할 문자열에 전달된다.
print(f'이름은 {name}이고, 나이는 {age}입니다.')                   # name, age 변수의 값이 출력할 문자열에 전달된다.

name = '홍길동'
age = '20'


print('이름은 name이고, 나이는 age입니다.')                # name, age 변수의 값이 출력되지 않는다.
print('이름은 %s이고, 나이는 %s입니다.' % (name, age))     # name, age 변수의 값이 출력할 문자열에 전달된다.
print('이름은 {}이고, 나이는 {}입니다.'.format(name, age)) # name, age 변수의 값이 출력할 문자열에 전달된다.
print(f'이름은 {name}이고, 나이는 {age}입니다.')
이름은 name이고, 나이는 age입니다.
이름은 홍길동이고, 나이는 20입니다.
이름은 홍길동이고, 나이는 20입니다.
이름은 홍길동이고, 나이는 20입니다.

 

j = 2
i = 1
z = i*j
print(f'{j} X {i} = {z}')

j = 2
i = 1
z = i*j
print(f'{j} X {i} = {z}')

2 X 1 = 2

 

2. 다음과 같은 출력 완성

print('\u2605')

더보기

[ 내 답안 ]

blanki = 4
starsi = 1
i = 1

while i <= 5:
    print(' ' * blanki + '\u2605' * starsi)
    blanki -= 1
    starsi += 2
    i += 1 

i = 0
while i < 5:
    print(' ' * (4-i) + '★' * (2*i+1))
    i += 1
    ★
   ★★★
  ★★★★★
 ★★★★★★★
★★★★★★★★★

 

 

* chatGPT 참고코드

i = 0
while i < 5:
    print(' ' * (4-i) + ' u2605 ' * (2*i+1))
    i += 1
i = 3
while i >= 0:
    print(' ' * (4-i) + ' u2605 ' * (2*i+1))
    i -= 1

i = 0
while i < 5:
    print(' ' * (4-i) + '★' * (2*i+1))
    i += 1
i = 3
while i >= 0:
    print(' ' * (4-i) + '★' * (2*i+1))
    i -= 1

    ★
   ★★★
  ★★★★★
 ★★★★★★★
★★★★★★★★★
 ★★★★★★★
  ★★★★★
   ★★★
    ★

    

 

[ 문제풀이 ]

a1 = '\u2605'
a2 = ' '
a2*3 + a1

for i in range(1,8) :
    if i <= 4 :
        print(a2*(4-i)+ a1*(2*i-1))
    else : 
        print(a2*(i-4) + a1*(2*(8-i)-1))

a1 = '\u2605'
a2 = ' '
a2*3 + a1

for i in range(1,8) :
    if i <= 4 :
        print(a2*(4-i)+ a1*(2*i-1))
    else : 
        print(a2*(i-4) + a1*(2*(8-i)-1))
   ★
  ★★★
 ★★★★★
★★★★★★★
 ★★★★★
  ★★★
   ★