2012-02-12 2 views
18

"hello world"문자열을 한 줄에 인쇄하는 방법은 무엇입니까? 한 번에 한 글자 씩 입력하면 각 글자를 인쇄하는 사이에 지연이 생깁니 까? 내 솔루션은 한 줄에 한 글자 또는 한 번에 전체 문자열을 지연 인쇄 한 결과를 가져 왔습니다. 이것은 내가 가장 가까이있는 것입니다.한 번에 한 문자 씩 인쇄하는 방법은 무엇입니까?

import time 
string = 'hello world' 
for char in string: 
    print char 
    time.sleep(.25) 

답변

27

여기서 두 가지 트릭을 사용하면 스트림을 사용하여 모든 것을 올바른 위치에서 가져와야하며 스트림 버퍼를 플러시해야합니다.

>>> import time 
>>> string = "hello world" 
>>> for char in string: 
    print(char, end='') 
    time.sleep(.25) 


hello world 

재밌게 : 당신이 print 함수의 end 매개 변수를 지정할 수 있기 때문에

import time 
import sys 

def delay_print(s): 
    for c in s: 
     sys.stdout.write(c) 
     sys.stdout.flush() 
     time.sleep(0.25) 

delay_print("hello world") 
+5

왜 문자열 보간? 'sys.stdout.write (c)'는 제 시스템에서 잘 작동합니다. – Blair

4
import sys 
import time 

string = 'hello world\n' 
for char in string: 
    sys.stdout.write(char) 
    sys.stdout.flush() 
    time.sleep(.25) 
5

여기에, 파이썬 3 간단한 트릭! 결과는 이제 애니메이션입니다!

관련 문제