HOWTO · Python
Python에서 사이에 공백없이 값 인쇄
Python에서 값 사이에 공백 없이 인쇄하는 방법을 알아보세요. print()의 sep 매개변수, f-string, str.format(), % 포맷팅, 연결 및 문자열 Template 대체를 사용합니다.
이 페이지의 내용
여러 인수를 쉼표로 구분하여 print() 함수에 전달하면, print()는 기본적으로 이를 공백으로 결합합니다. 그로 인해 값 사이에 불필요한 공백이 생길 때가 있습니다. 다행히 Python은 이 간격을 정확히 제어할 수 있는 몇 가지 대안을 제공합니다.
이 가이드에서는 Python에서 값 사이에 공백 없이 인쇄하는 다양한 방법을 배웁니다. 모든 방법은 아래의 쉼표 형식에서 시작하는 동일한 연속 예제로 표시됩니다.
x = 10
print('The number of mangoes I have is "', x, '"')
출력:
The number of mangoes I have is " 10 "
숫자 10과 그것을 둘러싼 큰따옴표 사이의 불필요한 공백에 주목하세요. 각 쉼표에서 하나씩 생깁니다. 아래 모든 방법의 목적은 동일한 값을 인쇄하면서 이 과도한 간격을 제거하는 것입니다.
모듈로 % 기호를 사용한 문자열 포맷팅으로 Python에서 사이에 공백 없이 값 인쇄하기
문자열 포맷팅 또는 보간 연산자로도 알려진 % 기호는 Python에서 가장 오래된 포맷팅 방법입니다. 문자열 안의 %d와 같은 자리 표시자는 값이 들어갈 위치를 표시하고, % 연산자 뒤의 값이 이를 대체하므로 어디에도 구분 기호가 추가되지 않습니다.
x = 10
print('The number of mangoes I have is "%d"' % x)
출력:
The number of mangoes I have is "10"
여기서 %d는 정수용 자리 표시자입니다. 문자열이 구축될 때 x의 값인 10으로 대체되며, 인쇄된 텍스트는 따옴표에 직접 닿습니다. 이 스타일은 Python 3에서도 여전히 작동하지만, 최신 코드는 보통 str.format() 또는 f-string을 선호합니다.
str.format() 함수를 사용한 문자열 포맷팅으로 Python에서 사이에 공백 없이 값 인쇄하기
str.format()에서는 문자열 안의 중괄호 {}가 값이 대체될 위치를 표시합니다. 이 메서드는 Python 3에서 도입되었으며 복잡한 포맷팅을 효율적으로 처리합니다. 완성된 문자열이 print()에 대한 단일 인수이므로 구분 기호가 나타나지 않습니다.
x = 10
print('The number of mangoes I have is "{}"'.format(x))
출력:
The number of mangoes I have is "10"
{} 자리 표시자는 큰따옴표 안에 위치하며, 문자열이 표시될 때 x의 값으로 대체됩니다. 새 코드에서는 오래된 % 연산자보다 str.format()이 권장됩니다.
문자열 연결을 사용하여 Python에서 사이에 공백 없이 값 인쇄하기
문자열 연결 연산자인 + 연산자는 문자열을 끝과 끝으로 결합하고 그 사이에 아무것도 추가하지 않으므로, 쉼표 구분의 직접적인 대안이 됩니다.
x = 10
print('The number of mangoes I have is "' + str(x) + '"')
출력:
The number of mangoes I have is "10"
연결은 문자열 사이에서만 작동하므로, 정수 x는 먼저 str()로 변환됩니다. 그런 다음 조각들은 하나의 문자열 — 'The number of mangoes I have is "', '10', '"' — 을 형성하고, print()는 이를 그대로 출력합니다.
문자열 포맷팅에 f-string을 사용하여 Python에서 사이에 공백 없이 값 인쇄하기
Python 3.6은 문자열 리터럴 안에 식을 직접 포함시키는 f-string을 도입했습니다. 값은 문자열이 구축될 때 평가되므로, 위의 다른 두 포맷팅 방법보다 빠르기도 합니다.
x = 10
print(f'The number of mangoes I have is "{x}"')
출력:
The number of mangoes I have is "10"
문자열 앞의 f 접두사는 이를 f-string으로 만들고, 그 안의 {x}는 코드가 실행될 때 x의 값으로 대체됩니다. 변수가 그 텍스트가 나타나야 할 위치에 정확히 위치하므로, 결과는 간결하고 읽기 쉬우며 여분의 공백이 없습니다.
print 문의 sep 매개변수를 사용하여 Python에서 사이에 공백 없이 값 인쇄하기
쉼표로 구분된 인수를 유지하고 싶다면, print()가 그 사이에 무엇을 넣는지 변경하세요. Python 3에서 사용 가능한 sep 매개변수는 인수 사이에 삽입되는 구분 기호이며, 기본값은 공백 하나입니다.
x = 10
print('The number of mangoes I have is "', x, '"', sep="")
출력:
The number of mangoes I have is "10"
sep를 빈 문자열 ""로 설정하면 print()는 각 부분 — 여는 따옴표까지의 텍스트, x의 값, 닫는 따옴표 — 을 그 사이에 아무것도 넣지 않고 결합합니다. 이는 원래 쉼표 형식에 대한 가장 작은 변경입니다. 인수는 그대로 유지되고 구분 기호만 제거됩니다.
Template 문자열을 사용한 문자열 보간으로 Python에서 사이에 공백 없이 값 인쇄하기
Python의 string.Template 클래스는 템플릿 문자열에 값을 보간합니다. $로 시작하는 자리 표시자는 제공하는 값으로 대체되며, 그 주변에는 아무것도 추가되지 않습니다.
from string import Template
x = 10
template = Template('The number of mangoes I have is "$x"')
result = template.substitute(x=x)
print(result)
출력:
The number of mangoes I have is "10"
여기서 $x는 x 값의 자리 표시자입니다. template.substitute(x=x)를 호출하면 10으로 대체되고, print(result)는 완성된 문자열을 정확히 — The number of mangoes I have is "10"이며, 따옴표나 공백이 추가되지 않습니다 — 출력합니다. Template 문자열은 대체 규칙이 의도적으로 단순하므로, 템플릿 자체가 사용자나 파일에서 올 때 가장 자주 사용됩니다.
결론
원래 예제의 공백은 print() 자체에서 비롯됩니다. 쉼표로 구분된 인수에서는 기본값이 공백 하나인 sep 구분 기호를 삽입합니다. 구분 기호를 변경하거나(sep=""), 인쇄하기 전에 전체 문자열을 구축하거나(f-string, str.format(), % 연산자, 연결 또는 string.Template 사용), 두 가지 아이디어를 결합하여 이를 제거할 수 있습니다. 일상적인 코드에서는 f-string이 가장 읽기 쉬운 옵션이며, sep=""는 인수가 이미 준비되어 있을 때 가장 빠른 수정입니다.