如何打印正在运行的文本?例如打印" Stack" Python将打印S然后然后是c然后是k?

时间:2014-03-18 17:57:03

标签: python

我使用notepad ++编写代码,然后使用Windows Power Shell查看输出。现在让我说我要打印这个......

“Stack Overflow”

但不是一次全部。首先它会打印S然后然后是a然后是c然后是k然后是空格然后是O ......?

当我们在旧PC中输入时,是否有任何函数/方法发布文本?

如果问题未完成,请告诉我我可以提供的更多信息。

更新

@uʍopǝpısdn是的,你了解我的要求。非常感谢答案。 :)

嗯,我不知道它叫做Emulating text。 :)

2 个答案:

答案 0 :(得分:5)

你走了:

import time, sys

for letter in "Stack Overflow":
    sys.stdout.write(letter)
    sys.stdout.flush()
    time.sleep(1) # that's in seconds, adjust at will

sys.stdout.write('\n')

为什么选择stdout.flush?

正在运行的程序的输出通常被缓冲(即保持等待)直到满足某些条件。对sleep()的调用不符合这些条件,文本也不会出现。通过在每个字母后面调用flush(),你可以强制它。

答案 1 :(得分:1)

from __future__ import print_function  # only needed for Python 2.x
import random
from time import sleep

def delay_print(s, min_delay=0.1, max_delay=0.8):
    for ch in s:
        delay = min_delay + random.random() * (max_delay - min_delay)
        sleep(delay)
        print(ch, end="")
    print('')

delay_print("StackOverflow")