C의 예:
for (int i = 0; i < 4; i++)
printf(".");
산출:
....
파이썬에서:
>>> for i in range(4): print('.')
.
.
.
.
>>> print('.', '.', '.', '.')
. . . .
Python에서는 또는 공백 print
을 추가합니다 . \n
어떻게 피할 수 있습니까? 문자열을 "추가"하는 방법을 알고 싶습니다 stdout
.
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)
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
..........