慢慢打印(模拟打字)

Tec*_*eer 7 python

我想在python中制作一个文本游戏.一切顺利但是,我想制作一个功能,允许我打印到终端的东西,但在时尚帽子看起来像打字.

目前我有:

def print_slow(str):
    for letter in str:
        print letter,
        time.sleep(.1)

print_slow("junk")
Run Code Online (Sandbox Code Playgroud)

输出是:

j u n k
Run Code Online (Sandbox Code Playgroud)

有没有办法摆脱字母之间的空格?

Mar*_*ers 14

在Python 2.x中,您可以使用sys.stdout.write而不是print:

for letter in str:
    sys.stdout.write(letter)
    time.sleep(.1)
Run Code Online (Sandbox Code Playgroud)

在Python 3.x中,您可以将可选参数end设置为空字符串:

print(letter, end='')
Run Code Online (Sandbox Code Playgroud)

  • 嗯,缓冲区不需要`sys.stdout.flush()`吗?这是不打印行终止符时问题的核心。 (2认同)

小智 9

尝试这个:

def print_slow(str):
    for letter in str:
        sys.stdout.write(letter)
        sys.stdout.flush()
        time.sleep(0.1)

print_slow("Type whatever you want here")
Run Code Online (Sandbox Code Playgroud)


小智 9

这是我的"类似真人"的功能:

import sys,time,random

typing_speed = 50 #wpm
def slow_type(t):
    for l in t:
        sys.stdout.write(l)
        sys.stdout.flush()
        time.sleep(random.random()*10.0/typing_speed)
    print ''
Run Code Online (Sandbox Code Playgroud)