파이썬

[python] 줄 바꿈이나 공백 없이 인쇄하는 방법

zooheon 2022. 8. 28. 20:42
반응형

C의 예:

for (int i = 0; i < 4; i++)
    printf(".");

산출:

....

파이썬에서:

>>> for i in range(4): print('.')
.
.
.
.
>>> print('.', '.', '.', '.')
. . . .

Python에서는 또는 공백 print을 추가합니다 . \n어떻게 피할 수 있습니까? 문자열을 "추가"하는 방법을 알고 싶습니다 stdout.

 

Python 3에서는 함수 의 sep=end=매개변수를 사용할 수 있습니다 .print

문자열 끝에 개행을 추가하지 않으려면:

print('.', end='')

인쇄하려는 모든 함수 인수 사이에 공백을 추가하지 않으려면:

print('a', 'b', 'c', sep='')

임의의 문자열을 매개변수 중 하나에 전달할 수 있으며 두 매개변수를 동시에 사용할 수 있습니다.

버퍼링에 문제가 있는 경우 flush=True키워드 인수를 추가하여 출력을 플러시할 수 있습니다.

print('.', end='', flush=True)

파이썬 2.6 및 2.7

Python 2.6에서 모듈print 을 사용하여 Python 3에서 함수를 가져올 수 있습니다 .__future__

from __future__ import print_function

위의 Python 3 솔루션을 사용할 수 있습니다.

그러나 Python 2에서 가져온 함수 flush버전에서는 키워드를 사용할 수 없습니다 . Python 3, 특히 3.3 이상에서만 작동합니다. 이전 버전에서는 에 대한 호출을 사용하여 수동으로 플러시해야 합니다 . 또한 이 가져오기를 수행하는 파일의 다른 모든 인쇄 문을 다시 작성해야 합니다.print__future__sys.stdout.flush()

또는 다음을 사용할 수 있습니다.sys.stdout.write()

import sys
sys.stdout.write('.')

당신은 또한 전화해야 할 수도 있습니다

sys.stdout.flush()

확인하려면 stdout즉시 플러시됩니다.

 

Python 2 및 이전 버전의 경우 Re: How do one print without CR? 에서 설명한 것처럼 간단해야 합니다 . Guido van Rossum ( 의역):

무언가를 인쇄할 수 있지만 자동으로 캐리지 리턴이 추가되지 않습니까?

예, 인쇄할 마지막 인수 뒤에 쉼표를 추가합니다. 예를 들어, 이 루프는 공백으로 구분된 줄에 숫자 0..9를 인쇄합니다. 마지막 줄 바꿈을 추가하는 매개변수 없는 "인쇄"에 유의하십시오.

>>> for i in range(10):
...     print i,
... else:
...     print
...
0 1 2 3 4 5 6 7 8 9
>>>

 

참고: 이 질문의 제목은 "파이썬에서 인쇄하는 방법"과 같은 것이었습니다.

사람들이 제목에 따라 여기를 찾을 수 있으므로 Python은 또한 printf 스타일 대체를 지원합니다.

>>> strings = [ "one", "two", "three" ]
>>>
>>> for i in xrange(3):
...     print "Item %d: %s" % (i, strings[i])
...
Item 0: one
Item 1: two
Item 2: three

또한 문자열 값을 쉽게 곱할 수 있습니다.

>>> print "." * 10
..........

 

반응형