我正在编写一个应该在控制台上打印文本的代码,每个字母都应该有一点延迟。我尝试过这样的事情
from time import sleep
print "H", sleep(0.1), "e", sleep(0.1), "l", sleep(0.1), "l", sleep(0.1), "o"
但它会随机选择“无”。我该怎么办? 请帮助:?:
答案 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
返回的内容。