我正在制作一个应该在控制台上打印文本的代码,每个字母都应该有一点延迟。我试过这样的东西
from time import sleep
print "H", sleep(0.1), "e", sleep(0.1), "l", sleep(0.1), "l", sleep(0.1), "o"
但它在那里放了随机的“无”。我该怎么办?请帮忙 :?:
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()
您需要使用单独的打印来执行此操作:
from time import sleep
print "H",
sleep(0.1)
print "e",
sleep(0.1)
# ...
请注意,像这样使用 print 将在字符之间有一些空格。
您看到None
打印的原因是因为sleep
返回None
并且您的脚本尝试打印sleep
返回的内容。