뉴라인 없이 인쇄(인쇄 '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의 끝에도 뉴라인은 인쇄되지 않는다는 점에 유의하십시오.a
s
>>> import sys
>>> for i in xrange(20):
... sys.stdout.write('a')
...
aaaaaaaaaaaaaaaaaaaa>>>
Python 3은print
print() 함수에 문(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)
'IT이야기' 카테고리의 다른 글
Python 3.x에서 목록을 반환하는 맵() 가져오기 (0) | 2022.03.21 |
---|---|
구성 reactive-native-maps에서 "supportLibVersion", "playServicesVersion" 및 "androidMapsUtilsVersion" 값을 확인하십시오. (0) | 2022.03.21 |
TS2339: 속성 'tsReducer'가 'DefaultRootState' 유형에 없음 (0) | 2022.03.21 |
완료/오류 제거된 관찰 가능 등록을 취소해야 하는가? (0) | 2022.03.21 |
python의 탄생일로부터 나이 (0) | 2022.03.21 |