首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >逐个字符打印字符串,包括控制字符

逐个字符打印字符串,包括控制字符
EN

Stack Overflow用户
提问于 2016-01-09 20:40:05
回答 2查看 515关注 0票数 0

编辑-我遇到的问题是我试图使用的库colorama,我可能应该更具体一些。

我希望能够逐个字符地打印字符串,并在每个字符之间有一个极短的停顿,但我的代码忽略了控制字符,只打印单个字符。不知道该如何应对这个问题。

下面是执行此操作的代码部分:

代码语言:javascript
复制
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。

EN

回答 2

Stack Overflow用户

发布于 2016-01-09 20:57:25

也许是这样的?

代码语言:javascript
复制
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()

编辑:固定

票数 0
EN

Stack Overflow用户

发布于 2016-01-09 22:39:53

我不能完全理解您的问题,但我假设您正在尝试打印控制字符,如'\t‘或'\n’。

当您创建一个像"A\tB“这样的字符串时,它由三个字符组成,而不是四个字符。'\t‘直接转换为单个字符。

因此,当您遍历字符时,需要将这些控制字符映射回它们的字符串表示形式。要做到这一点,你可以使用repr() (参见this answer),而且你做得很好

代码语言:javascript
复制
>>> slowprint(repr("abs\tsd\n"), 0.1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34693569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档