다양한 출력 방법 1

1주차에서 우리는 가장 대중적인 출력 방법인 print를 배웠습니다.

이번에는 print에 안에 입력하여 사용하는 end, format에 대해 알아봅시다.

입출력

end

print함수에는 end라는 인자에 값을 넣을 수 있습니다. 이 기능은 출력하는 문자 끝에 어떤 것을 더 출력할지 정해주는 인자입니다.

우리가 print함수를 쓰면 자동으로 마지막에 줄 바꿈이 적용되는데요. 이 print에 있는 end인자의 기본값이 줄 바꿈('\n')입니다.

print('aaa', end = '\n')
for i in range(5):
    print(i+1, end = ', ')
    
#1, 2, 3, 4, 5, 

위와 같이 end = ', '를 추가해서 1, 2, 3, 4, 5, 를 출력할 수도 있습니다.

깔끔하게 마지막에 5 오른쪽에 , 를 없애려면 아래 코드처럼 if / else문을 사용할 수 있습니다.

나중에 다른 문제들을 풀 때, end 인자에 값을 넣어야 하는 경우 사용해보시면 됩니다.

풀어볼 문제

format

이 문제를 봅시다. A+B를 출력하는 방법은 쉬울 것이고, 출력하는 것이 문제인데 지금까지 배운 print와 콤마(,)와 문자열끼리 붙여주는 + 연산자를 이용해서 코드를 만들어 보았습니다.

이렇게 하면 문제를 풀 수 있지만 print부분의 코드가 많이 더러운 편입니다. 그래서 코드를 좀 더 깔끔하게 적을 방법인 format을 소개하겠습니다.

format은 print('내용'.format())으로 작성할 수 있으며 변수를 출력할 내용 부분에는 {}를 입력해주며, 소괄호 안에 거기에 들어갈 수를 적어주면 됩니다. 위 문제를 예시로 들자면 아래 코드처럼 바꿀 수 있습니다.

따옴표 부분에는 필요한 내용만 적고, 변수들은 전부 괄호 안에 넣으면 되므로 확실히 가독성이 좋아지게 됩니다.

그리고 format에서 {}에는 인덱싱을 지원해줍니다.

이렇게 a+b와 i+1을 서로 순서를 바꿔서 입력을 해도 {1}, {0}처럼 이렇게 중괄호 안에 숫자를 넣으면 정상적으로 나오게 만들 수 있습니다. 하지만 일부러 저렇게 문제를 풀지는 않겠지요.

format을 사용하는 문제는 보통 위에 A + B - 7 문제와 같이 출력 내용에 고정된 문자열 내용이 있을 때 사용하는 편입니다.

풀어볼 문제

참고로 format에는 소수점을 필요한 부분까지만 출력할 수 있는 기능도 있습니다.

일단 원의 넓이는 pi * 반지름 * 반지름이고, 택시 기하학은 무슨 소리인지 모르겠는데 예제를 보니까 원의 넓이는 2 * (반지름) * (반지름)인 것 같습니다.

출력은 소수점 아래 6자리이고, 정수 값이 나와도 무조건 소수점 아래 숫자를 0으로 채워야 하네요.

일단 소수점을 출력하는 방법은 {0:.6f}로 이 문제에서는 6자리를 출력하니까 6을 적으면 됩니다. 소수점 아래 3자리만 출력한다면 {0:.3f} 입니다.

위 코드에 나온 pi 값은 소수점 6자리를 넘어서 11자리를 나타내고 있는데요. 이는 답의 오차가 0.0001까지만 차이가 나야 정답으로 인정되기 때문에 3.141592를 사용할 경우 틀린 답이 나오게 됩니다. 아래에 관련 내용을 적어두었습니다.

풀어볼 문제

Last updated