IT이야기

뉴라인 없이 인쇄(인쇄 'a'), 인쇄 공간, 제거 방법?

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

뉴라인 없이 인쇄(인쇄 'a'), 인쇄 공간, 제거 방법?

다음 코드를 가지고 있다.

>>> for i in xrange(20):
...     print 'a',
... 
a a a a a a a a a a a a a a a a a a a a

출력하고 싶다'a', 없는' '다음과 같은 경우:

aaaaaaaaaaaaaaaaaaaa

가능합니까?

당신의 결과를 얻는 데는 여러 가지 방법이 있다.사례에 대한 솔루션만 원한다면 @Ant에서 언급하는 문자열 곱셈을 사용하십시오.이 일은 각자가 할 때만 효과가 있을 것이다.print문장은 같은 문자열을 인쇄한다.모든 길이 문자열의 곱셈(예:'foo' * 20효과가 있다

>>> print 'a' * 20
aaaaaaaaaaaaaaaaaaaa

일반적으로 이 작업을 수행하려면 문자열을 만든 다음 한 번 인쇄하십시오.이것은 문자열의 메모리를 약간 소모하지만, 단 한 번의 호출만 할 것이다.print. 문자열 연결:+=연결 중인 문자열의 크기가 선형이기 때문에 속도가 빠를 겁니다.

>>> for i in xrange(20):
...     s += 'a'
... 
>>> print s
aaaaaaaaaaaaaaaaaaaa

아니면 sys.stdout을 사용하여 더 직접적으로 할 수도 있다.어떤 것을 쓰는지 쓰다.print포장지로 둘러 싸고이것은 형식 없이 당신이 준 생줄만 쓸 것이다.20의 끝에도 뉴라인은 인쇄되지 않는다는 점에 유의하십시오.as

>>> import sys
>>> for i in xrange(20):
...     sys.stdout.write('a')
... 
aaaaaaaaaaaaaaaaaaaa>>> 

Python 3은printprint() 함수에 문(the prints)을 입력하여, 이 기능을 사용하면end매개 변수>=2.6 에서 수입하여 사용할 수 있다.__future__. 3.x를 사용해 본 적이 없는 사람들에게는 조금 헷갈릴 것이기 때문에 나는 어떤 심각한 2.x 코드에서도 이것을 피하고 싶다.하지만, 그것은 당신에게 3.x가 가져다주는 약간의 선함을 맛보게 해줄 것이다.

>>> from __future__ import print_function
>>> for i in xrange(20):
...     print('a', end='')
... 
aaaaaaaaaaaaaaaaaaaa>>> 

PEP 3105내용: Python 2.6의 새로운 기능 문서에 기능으로서의 인쇄:

>>> from __future__ import print_function
>>> print('a', end='')

분명히 그것은 python 3.0 이상에서만 작동한다.from __future__ import print_function맨 처음에print진술이 삭제되고, 그 말이 되었다.print()Python 3.0에서 기본적으로 기능한다.

빈 문자열을 인쇄하여 공간을 억제할 수 있다.print진술들

>>> import sys
>>> for i in range(20):
...   print 'a',
...   sys.stdout.write('')
... 
aaaaaaaaaaaaaaaaaaaa

하지만, 더 깨끗한 해결책은 우선 인쇄할 전체 문자열을 만든 다음 한 개의 문자열로 출력하는 것이다.print명세서

백스페이스 문자를 인쇄할 수 있다('\b'):

for i in xrange(20):
    print '\ba',

결과:

aaaaaaaaaaaaaaaaaaaa

Python 3.x:

for i in range(20):
    print('a', end='')

Python 2.6 또는 2.7:

from __future__ import print_function
for i in xrange(20):
    print('a', end='')

한 번에 하나씩 나타나도록 하려면 다음을 수행하십시오.

import time
import sys
for i in range(20):
    sys.stdout.write('a')
    sys.stdout.flush()
    time.sleep(0.5)

sys.stdout.flush()루프가 실행될 때마다 문자를 강제로 작성해야 한다.

참고로 다음과 같다.

인쇄는 O(1)이지만 문자열을 만든 다음 인쇄는 O(n)이며 여기서 n은 문자열의 총 문자 수입니다.그래서 그래, 끈을 만드는 것이 "더 깨끗하다"고 하지만, 그렇게 하는 가장 효율적인 방법은 아니다.

내가 하고 싶은 방법은 다음과 같다.

from sys import stdout
printf = stdout.write

이제는 매번 새로운 줄 문자를 돌려주지 않고 줄 문자열을 출력하는 '인쇄 기능'이 생겼다.

printf("Hello,")
printf("World!")

출력은 다음과 같을 것이다: Hellohello, World!

그러나 정수, 플로트 또는 기타 비 문자열 값을 인쇄하려면 str() 함수가 있는 문자열로 변환해야 한다.

printf(str(2) + " " + str(4))

출력: 2 4

Ant 또는 문자열로 축적된 다음 한 번 인쇄하십시오.

s = '';
for i in xrange(20):
    s += 'a'
print s

무어라고?진심이야?

>>> print 'a' * 20
aaaaaaaaaaaaaaaaaaaa

?

이것은 정말 간단하다.

파이톤 3+ 버전에 대해서는 다음 코드만 작성하면 된다.

for i in range(20):
      print('a',end='')

루프를 다음 코드로 변환하기만 하면 다른 걱정은 하지 않아도 된다.

와!!!

오래전 일이다.

이제, 파이톤 3.x에서는 꽤 쉬울 것이다.

코드:

for i in range(20):
      print('a',end='') # here end variable will clarify what you want in 
                        # end of the code

출력:

aaaaaaaaaaaaaaaaaaaa 

인쇄() 함수에 대한 자세한 정보

print(value1,value2,value3,sep='-',end='\n',file=sys.stdout,flush=False)

여기:

value1,value2,value3

쉼표를 사용하여 여러 값을 인쇄할 수 있다.

sep = '-'

3개의 값은 '-' 문자로 구분된다.

sep='@' 또는 sep='good'와 같은 짝수 문자열 대신 어떤 문자도 사용할 수 있다.

end='\n'

기본적으로 출력 끝에 '\n' 문자 표시

그러나 끝 바리알 값을 변경하여 모든 문자나 문자열을 사용할 수 있다.

end='$' 또는 end=' end='를 좋아하다.여보세요.'

file=sys.stdout

기본 값, 시스템 표준 출력

이 인수를 사용하여 다음과 같은 출력 파일 스트림을 만들 수 있다.

print("I am a Programmer", file=open("output.txt", "w"))

이 코드로 당신은 출력이라는 이름의 파일을 만들 것이다.txt 출력물 나는 프로그래머다.

flush = False

플러시를 사용하는 기본값=참으로 스트림을 강제로 플러시할 수 있음

그것처럼 간단해.

def printSleeping():
     sleep = "I'm sleeping"
     v = ""
     for i in sleep:
         v += i
         system('cls')
         print v
         time.sleep(0.02)

참조URL: https://stackoverflow.com/questions/4499073/printing-without-newline-print-a-prints-a-space-how-to-remove

반응형