파이썬 인쇄에 줄 바꿈이나 공백을 추가하지 않으려면 어떻게합니까? [복제]
이 질문에는 이미 답변이 있습니다.
- 줄 바꿈이나 공백없이 인쇄하는 방법? 답변 21 개
파이썬에서 내가 말하면
print 'h'
나는 편지 h와 줄 바꿈을 얻습니다. 내가 말하면
print 'h',
나는 편지 h를 얻지 만 개행은 없습니다. 내가 말하면
print 'h',
print 'm',
문자 h, 공백 및 문자 m을 얻습니다. 파이썬이 공간을 인쇄하지 못하게하려면 어떻게해야합니까?
print 문은 동일한 루프의 반복이 다르므로 + 연산자를 사용할 수 없습니다.
당신이 사용할 수있는:
sys.stdout.write('h')
sys.stdout.write('m')
단지 의견입니다. 에서 파이썬 3 , 당신은 사용
print('h', end='')
엔드 라인 종결자를 억제하기 위해
print('a', 'b', 'c', sep='')
항목 사이의 공백 구분 기호를 표시하지 않습니다.
Greg가 옳습니다. sys.stdout.write를 사용할 수 있습니다
아마도 <whatevers> 목록을 축적하기 위해 알고리즘을 리팩토링하는 것을 고려해야합니다.
lst = ['h', 'm']
print "".join(lst)
또는을 사용하십시오 +
.
>>> print 'me'+'no'+'likee'+'spacees'+'pls'
menolikeespaceespls
모든 것이 연결 가능한 객체인지 확인하십시오.
Python 2.5.2 (r252:60911, Sep 27 2008, 07:03:14)
[GCC 4.3.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print "hello",; print "there"
hello there
>>> print "hello",; sys.stdout.softspace=False; print "there"
hellothere
그러나 실제로는 sys.stdout.write
직접 사용해야 합니다.
완전성을 위해 다른 방법은 쓰기를 수행 한 후 소프트 스페이스 값을 지우는 것입니다.
import sys
print "hello",
sys.stdout.softspace=0
print "world",
print "!"
인쇄물 helloworld !
stdout.write ()를 사용하는 것이 아마도 대부분의 경우 더 편리 할 것입니다.
이것은 어리석게 보일지 모르지만 가장 간단한 것 같습니다.
print 'h',
print '\bm'
콘솔을 다시 제어하십시오! 간단히:
from __past__ import printf
어디에 __past__.py
포함 :
import sys
def printf(fmt, *varargs):
sys.stdout.write(fmt % varargs)
그때:
>>> printf("Hello, world!\n")
Hello, world!
>>> printf("%d %d %d\n", 0, 1, 42)
0 1 42
>>> printf('a'); printf('b'); printf('c'); printf('\n')
abc
>>>
추가 보너스 : 마음에 들지 않으면 print >> f, ...
이 케이 퍼를 fprintf (f, ...)로 확장 할 수 있습니다.
새로운 답변을 추가하지 않습니다. 가장 좋은 답변을 더 나은 형식으로 작성하고 있습니다. 등급별 최고의 답변이을 사용하고 있음을 알 수 sys.stdout.write(someString)
있습니다. 이것을 시도해 볼 수 있습니다.
import sys
Print = sys.stdout.write
Print("Hello")
Print("World")
산출 할 것이다 :
HelloWorld
그게 다야.
파이썬 2.6에서 :
>>> print 'h','m','h'
h m h
>>> from __future__ import print_function
>>> print('h',end='')
h>>> print('h',end='');print('m',end='');print('h',end='')
hmh>>>
>>> print('h','m','h',sep='');
hmh
>>>
따라서 __future__의 print_function을 사용하면 print 함수 의 sep 및 end 매개 변수를 명시 적으로 설정할 수 있습니다 .
C에서 printf 함수처럼 print를 사용할 수 있습니다.
예 :
"% s % s"인쇄 % (x, y)
print("{0}{1}{2}".format(a, b, c))
sys.stdout.write
(파이썬 2에서) 유일한 강력한 솔루션입니다. 파이썬 2 인쇄는 미쳤다. 이 코드를 고려하십시오.
print "a",
print "b",
이 a b
인쇄되어 후행 공백이 인쇄되고있는 것으로 의심됩니다. 그러나 이것은 정확하지 않습니다. 대신 이것을 시도하십시오 :
print "a",
sys.stdout.write("0")
print "b",
인쇄 a0b
됩니다. 어떻게 설명하니? 공간은 어디로 갔습니까?
나는 아직도 여기서 실제로 무슨 일이 일어나고 있는지 알 수 없습니다. 누군가 내 최고의 추측을 살펴볼 수 있습니까?
당신이 뒤에있을 때 규칙을 추론에서 내 시도 ,
귀하에print
:
먼저 print ,
(파이썬 2에서) 공백 (줄 바꿈 또는 줄 바꿈)을 인쇄하지 않는다고 가정 해 봅시다 .
그러나 Python 2는 인쇄 방법에주의를 기울입니다- print
또는 sys.stdout.write
, 또는 다른 것을 사용하고 있습니까? 을 두 번 연속 호출하면 print
Python은 둘 사이에 공백을 두어야합니다.
import sys
a=raw_input()
for i in range(0,len(a)):
sys.stdout.write(a[i])
print('''first line \
second line''')
그것은 생산할 것이다
첫 번째 줄 두 번째 줄
참고 URL : https://stackoverflow.com/questions/255147/how-do-i-keep-python-print-from-adding-newlines-or-spaces
'IT story' 카테고리의 다른 글
지정된 문자의 첫 번째 인스턴스에서만 문자열 분리 (0) | 2020.04.15 |
---|---|
Python FOR 루프 내에서 루프 수 얻기 (0) | 2020.04.15 |
지점을 머리로 빨리 감는 방법? (0) | 2020.04.15 |
XPath contains (text (), 'some string')은 둘 이상의 Text 하위 노드가있는 노드와 함께 사용할 때 작동하지 않습니다 (0) | 2020.04.15 |
python-ldap을 설치할 수 없습니다 (0) | 2020.04.15 |