Python 如何在一行上一次打印一个字符?

Python 如何在一行上一次打印一个字符?,python,Python,如何将字符串“hello world”打印到一行,但每次打印一个字符,以便在打印每个字母之间有延迟?我的解决方案要么导致每行一个字符,要么一次延迟打印整个字符串。这是我最近的一次 import time string = 'hello world' for char in string: print char time.sleep(.25) 这里有两个技巧,您需要使用流将所有内容都放在正确的位置,并且还需要刷新流缓冲区 import time import sys def d

如何将字符串“hello world”打印到一行,但每次打印一个字符,以便在打印每个字母之间有延迟?我的解决方案要么导致每行一个字符,要么一次延迟打印整个字符串。这是我最近的一次

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

这里有两个技巧,您需要使用流将所有内容都放在正确的位置,并且还需要刷新流缓冲区

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")

下面是Python 3的一个简单技巧,因为您可以指定
print
函数的
end
参数:

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


hello world

玩得开心!结果现在是动画

为什么要使用字符串插值
sys.stdout.write(c)
在我的系统上运行良好。有没有理由不使用此解决方案?它看起来简单而优雅。一个小的。默认输出是缓冲的,因此您需要添加flush=True,如下所示:
print(char,end='',flush=True)
>>> import time
>>> string = "hello world"
>>> for char in string:
    print(char, end='')
    time.sleep(.25)


hello world