Python代码,控制台文本的时间延迟

时间:2013-04-04 14:11:12

标签: python time console delay

我正在编写一个应该在控制台上打印文本的代码,每个字母都应该有一点延迟。我尝试过这样的事情

from time import sleep
print "H", sleep(0.1), "e", sleep(0.1), "l", sleep(0.1), "l", sleep(0.1), "o"

但它会随机选择“无”。我该怎么办? 请帮助:?:

2 个答案:

答案 0 :(得分:4)

sleep返回None,打印出来。你可以print每个字符没有换行,然后睡觉:

import sys
from time import sleep

for c in "Hello":
    print c,        # note the comma
    sleep(0.1)
print               # the final newline

但为了避免中间的空格,你必须做这样的事情:

import sys
from time import sleep

for c in "Hello":
    sys.stdout.write(c)
    sleep(0.1)
sys.stdout.write('\n')

取决于你的环境,你可能还需要刷新stdout缓冲区:

import sys
from time import sleep

for c in "Hello":
    sys.stdout.write(c)
    sys.stdout.flush()
    sleep(0.1)
sys.stdout.write('\n')
sys.stdout.flush()

答案 1 :(得分:0)

您需要使用单独的打印件执行此操作:

from time import sleep

print "H",
sleep(0.1)
print "e",
sleep(0.1)
# ...

请注意,使用这样的print会在字符之间留下一些空格。

您看到None打印的原因是sleep返回None,您的脚本会尝试打印sleep返回的内容。