IT이야기

Python 인쇄에서 새 줄이나 공백을 추가하지 않도록 하는 방법

cyworld 2022. 3. 24. 21:56
반응형

Python 인쇄에서 새 줄이나 공백을 추가하지 않도록 하는 방법

python에서 내가 말한다면

print 'h'

나는 편지와 새 줄을 받는다.라고 말하면

print 'h',

나는 편지 h를 받고 새로운 전화는 받지 않는다.라고 말하면

print 'h',
print 'm',

나는 h라는 글자, 한 칸, 그리고 m이라는 글자를 얻는다.Python이 공간을 인쇄하는 것을 방지하려면 어떻게 해야 할까?

인쇄 문장이 같은 루프의 반복이 다르기 때문에 + 연산자를 그냥 사용할 수는 없다.

Python 3에서 사용

print('h', end='')

엔드라인 터미네이터를 억제하고

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

항목 사이의 공백 구분 기호를 표시하지 않는다.자세한 내용은 설명서를 참조하십시오.

import sys

sys.stdout.write('h')
sys.stdout.flush()

sys.stdout.write('m')
sys.stdout.flush()

그렇지 않으면 텍스트가 버퍼에 고정되어 보이지 않을 것이기 때문에 전화를 해야 한다.

그렉 말이 맞아 sys.stdout을 써도 돼글씨를 쓰다

하지만, 아마도 당신은 <화이트버스>의 목록을 축적하기 위해 당신의 알고리즘을 리팩터링하는 것을 고려해야 할 것이다.

lst = ['h', 'm']
print  "".join(lst)

또는 a를 참조하십시오.+, 즉,:

>>> 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 사용.그러나 대부분의 경우에 쓰기 작업이 더 편리할 것이다.

이것은 어리석어 보일지 모르지만 가장 간단한 것 같다.

    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

그게 다야

python 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을 사용하면 인쇄 기능의 sepend parameteres를 명시적으로 설정할 수 있다.

C의 printf 기능처럼 print를 사용할 수 있다.

예)

%s%s %(x, y) 인쇄

print("{0}{1}{2}".format(a, b, c))

sys.stdout.write(Python 2)의 유일한 강력한 솔루션이다.파이톤 2 인쇄가 미쳤어.다음 코드를 고려하십시오.

print "a",
print "b",

이것은 인쇄될 것이다.a b후행 공간을 인쇄하고 있다는 의심을 갖게 하는 겁니다.그러나 이것은 옳지 않다.대신 다음을 시도해 보십시오.

print "a",
sys.stdout.write("0")
print "b",

이것은 인쇄될 것이다.a0b그걸 어떻게 설명하지?그 공간들은 어디로 갔을까?

나는 아직도 여기서 무슨 일이 일어나고 있는지 잘 모르겠다.누가 내 추측을 좀 봐줄래?

당신이 미행하고 있을규칙을 추리하려는 나의 시도:

우선, 라고 가정해 보자.print ,(Python 2)에서는 공백(스페이스 또는 새 줄)을 인쇄하지 않는다.

한다 - 은 Python 2를 하는가? - 인데, 당신은 인데? - 에 기지를 사용하는가? 사용 중이십니까?print또는sys.stdout.write아니면 다른 거?두 번 연속 전화를 걸면print그러면 파이톤은 둘 사이에 공간을 넣자고 주장할 것이다.

print('''first line \
second line''')

그것은 생산될 것이다.

제1선 제2선

import sys
a=raw_input()
for i in range(0,len(a)):
       sys.stdout.write(a[i])

참조URL: https://stackoverflow.com/questions/255147/how-do-i-keep-python-print-from-adding-newlines-or-spaces

반응형