7.2 줄바꿈 활용하기

이번에는 줄바꿈(개행)을 활용해보겠습니다. 먼저 다음과 같이 print에 값을 여러 개 지정하면 한 줄에 모든 값이 출력됩니다.

>>> print(1, 2, 3)
1 2 3

그럼 print 한 번으로 값을 여러 줄에 출력할 수는 없을까요? 방법은 간단합니다. printsep에 개행 문자(\n)라는 특별한 문자를 지정하면 값을 한 줄에 하나씩 출력할 수 있습니다.

>>> print(1, 2, 3, sep='\n')
1
2
3

\n은 값을 다음 줄에 출력하게 만드는 제어 문자입니다. 따라서 sep\n을 지정하면 1 2 3 사이에 \n이 들어가므로 1을 출력한 뒤 다음 줄에 2를 출력하고 다시 다음 줄에 3을 출력하게 됩니다. 단, \n 자체는 제어 문자이므로 화면에 출력되지 않습니다.

1\n 
2 \n 
3 

참고로 \n도 문자이므로 print에 바로 넣어서 사용할 수도 있습니다. 다음과 같이 문자열 안에 \n를 넣으면 1 2 3은 세 줄로 출력되겠죠? print(1, 2, 3, sep='\n')와 결과가 같습니다.

>>> print('1\n2\n3')    # 문자열 안에 \n을 사용하여 줄바꿈
1
2
3

'1\n2\n3'과 같이 \n은 옆에 다른 문자나 숫자와 붙여서 씁니다. 만약 \n 양 옆에 공백을 넣어버리면 공백이 그대로 출력되므로 주의해야 합니다.

참고 | 제어 문자

제어 문자는 화면에 출력되지는 않지만 출력 결과를 제어한다고 해서 제어 문자라 부릅니다. 또한, 제어 문자는 \로 시작하는 이스케이프 시퀀스입니다(부록 ‎47.6 이스케이프 시퀀스 참조).

\n: 다음 줄로 이동하며 개행이라고도 부릅니다.

\t: 탭 문자, 키보드의 Tab 키와 같으며 여러 칸을 띄웁니다.

\\: \ 문자 자체를 출력할 때는 \를 두 번 써야 합니다.

7.2.1 end 사용하기

print는 기본적으로 출력하는 값 끝에 \n을 붙입니다. 그래서 print를 여러 번 사용하면 값이 여러 줄에 출력됩니다. 다음 내용을 IDLE의 소스 코드 편집 창에 입력한 뒤 실행해보세요.

print_multiple.py

print(1)
print(2)
print(3)

실행 결과

1
2
3

그러면 print를 여러 번 사용해서 print(1, 2, 3)처럼 한 줄에 여러 개의 값을 출력할 수는 없을까요? 이때는 printend에 빈 문자열을 지정해주면 됩니다.

  • print(값, end='문자 또는 문자열')
  • print(변수, end='문자 또는 문자열')

print_multiple_end.py

print(1, end='')    # end에 빈 문자열을 지정하면 다음 번 출력이 바로 뒤에 오게 됨
print(2, end='')
print(3)

실행 결과

123

end=''와 같이 end에 빈 문자열을 지정하면 1, 2, 3이 세 줄로 출력되지 않고 한 줄로 붙어서 출력됩니다. 기본적으로 printend\n이 지정된 상태인데 빈 문자열을 지정하면 강제로 \n을 지워주기 때문입니다.

즉, end는 현재 print가 끝난 뒤 그 다음에 오는 print 함수에 영향을 줍니다. 만약 1 2 3 사이를 띄워주고 싶다면 end에 공백 한 칸을 지정하면 됩니다.

print(1, end=' ')    # end에 공백 한 칸 지정
print(2, end=' ')
print(3)

실행 결과

1 2 3

이처럼 printsep, end에 제어 문자, 공백 문자 등을 조합하면 다양한 형태로 값을 출력할 수 있습니다. 자신의 상황에 맞게 선택해서 사용하면 됩니다.

지금까지 print의 다양한 사용 방법을 알아보았습니다. 여기서는 제어 문자 \nprint에서 sep, end의 활용 방법을 익혀두는 것이 좋습니다.