2

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

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

但它在那里放了随机的“无”。我该怎么办?请帮忙 :?:

4

2 回答 2

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

根据您的环境,您可能还需要刷新标准输出缓冲区:

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()
于 2013-04-04T14:14:39.690 回答
0

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

from time import sleep

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

请注意,像这样使用 print 将在字符之间有一些空格。

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

于 2013-04-04T14:15:46.670 回答