我正在编写一个涉及数据库的Python应用程序。对于它的地狱,我包括一个复活节彩蛋。如果用户决定从终端核对他的数据库,那么他将被提示用简单的(y / n)确认。但如果他输入DLG2209TVX,那么WarGames那个场景的线条就会打印出来。怀疑任何人都会找到它,除非他们查看我的来源,但那没关系。
问题在于,简单地打印线条会使场景过快,并且真的会破坏它。我在每个角色的线条之间实现了一个计时器,以减慢速度,而且它更好,但它看起来仍然不自然。有没有一种标准化的方法可以慢慢打印每个单词或字符,而不是一次做一行?或者我应该开始在单词之间添加计时器吗?
答案 0 :(得分:4)
标准化?从来没听说过。但试试这个:
import random
import sys
import time
def slowprint(s):
for c in s + '\n':
sys.stdout.write(c)
sys.stdout.flush() # defeat buffering
time.sleep(random.random() * 0.1)
slowprint('Hello, world.')
调整0.1
以更改字符之间的最大延迟,并在行之间添加冗长的time.sleep()
以增加更具戏剧性的效果。
答案 1 :(得分:1)
import sys
import time
for c in gettysburg_address:
sys.stdout.write(c)
sys.stdout.flush()
# 110 baud:
time.sleep( 8./110 )
# 300 baud:
# time.sleep( 8./300 )
答案 2 :(得分:1)
您还可以尝试curses.delay_output()
:
In [48]: import curses
In [49]: for x in "foo bar":
sys.stdout.write(x) #prints each char with a delay of 100ms
curses.delay_output(100)
....:
foo bar