안오늘 2021. 6. 19. 10:27

문제 설명

사용자가 입력한 범위만큼 가로로 구구단 출력하기

 

문제 풀이

# 구구단의 시작 범위 s와 끝 범위 e를 입력받는다. s와 e는 2부터 9사이의 정수
s, e = map(int, input().split())
if s and e not in range(2, 10):
    print("INPUT ERROR!")
    s, e = map(int, input().split())

if s < e:
    for j in range(1, 10):
        for i in range(s, e + 1):
            print('{0} * {1} = {2:>2}'.format(i, j, i*j), end='   ')
        print()

if s > e:
    for j in range(1, 10):
        for i in range(s, e-1, -1):
            print('{0} * {1} = {2:>2}'.format(i, j, i * j), end='   ')
        print()

출력결과

깨달은점

1. input 2개 한번에 받고 타입을 정해주려면 map함수를 사용한다.

2. for문에서 거꾸로 출력도 가능하게 하려면 기본 for문 함수는 양수 1 간격으로 돌기 때문에, -1으로 지정한다.

3. format함수로 해당 인덱스에 변수 값을 넣으면 더 편리하다. end= ' '로 간격을 조절한다.

4. 오른쪽으로 정렬하여 출력할때는 >를 사용한다. format할 때 2:>2은 2번째 인덱스에 2칸짜리에 오른쪽으로 정렬하라는 의미이다.