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

时间:2012-02-12 03:04:15

标签: python

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

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

3 个答案:

答案 0 :(得分:29)

这里有两个技巧,你需要使用一个流来将所有东西都放在正确的位置,你还需要刷新流缓冲区。

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

答案 1 :(得分:5)

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

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


hello world

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

答案 2 :(得分:4)

import sys
import time

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