编辑-我遇到的问题是我试图使用的库colorama,我可能应该更具体一些。
我希望能够逐个字符地打印字符串,并在每个字符之间有一个极短的停顿,但我的代码忽略了控制字符,只打印单个字符。不知道该如何应对这个问题。
下面是执行此操作的代码部分:
import time, sys
def slowprint(message, speed):
for x in range(0, len(message)):
if x == len(message)-1:
print(message[x])
else:
print(message[x], end="")
sys.stdout.flush()
time.sleep(speed)我用的是python 3.2。
发布于 2016-01-09 20:57:25
也许是这样的?
import time, sys
def slowprint(message, speed):
i = iter(message)
# output first character before pausing
sys.stdout.write(next(i))
sys.stdout.flush()
for letter in i:
time.sleep(speed)
sys.stdout.write(letter)
sys.stdout.flush()编辑:固定
发布于 2016-01-09 22:39:53
我不能完全理解您的问题,但我假设您正在尝试打印控制字符,如'\t‘或'\n’。
当您创建一个像"A\tB“这样的字符串时,它由三个字符组成,而不是四个字符。'\t‘直接转换为单个字符。
因此,当您遍历字符时,需要将这些控制字符映射回它们的字符串表示形式。要做到这一点,你可以使用repr() (参见this answer),而且你做得很好
>>> slowprint(repr("abs\tsd\n"), 0.1)https://stackoverflow.com/questions/34693569
复制相似问题