7.2 줄바꿈 활용하기
이번에는 줄바꿈(개행)을 활용해보겠습니다. 먼저 다음과 같이 print에 값을 여러 개 지정하면 한 줄에 모든 값이 출력됩니다.
>>> print(1, 2, 3) 1 2 3
그럼 print 한 번으로 값을 여러 줄에 출력할 수는 없을까요? 방법은 간단합니다. print의 sep에 개행 문자(\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)처럼 한 줄에 여러 개의 값을 출력할 수는 없을까요? 이때는 print의 end에 빈 문자열을 지정해주면 됩니다.
- print(값, end='문자 또는 문자열')
- print(변수, end='문자 또는 문자열')
print_multiple_end.py
print(1, end='') # end에 빈 문자열을 지정하면 다음 번 출력이 바로 뒤에 오게 됨 print(2, end='') print(3)
실행 결과
123
end=''와 같이 end에 빈 문자열을 지정하면 1, 2, 3이 세 줄로 출력되지 않고 한 줄로 붙어서 출력됩니다. 기본적으로 print의 end에 \n이 지정된 상태인데 빈 문자열을 지정하면 강제로 \n을 지워주기 때문입니다.
즉, end는 현재 print가 끝난 뒤 그 다음에 오는 print 함수에 영향을 줍니다. 만약 1 2 3 사이를 띄워주고 싶다면 end에 공백 한 칸을 지정하면 됩니다.
print(1, end=' ') # end에 공백 한 칸 지정 print(2, end=' ') print(3)
실행 결과
1 2 3
이처럼 print의 sep, end에 제어 문자, 공백 문자 등을 조합하면 다양한 형태로 값을 출력할 수 있습니다. 자신의 상황에 맞게 선택해서 사용하면 됩니다.
지금까지 print의 다양한 사용 방법을 알아보았습니다. 여기서는 제어 문자 \n과 print에서 sep, end의 활용 방법을 익혀두는 것이 좋습니다.