首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python - expandtabs()方法背后的想法

Python - expandtabs()方法背后的想法
EN

Stack Overflow用户
提问于 2018-06-05 10:49:10
回答 1查看 0关注 0票数 0

我想了解expandtabs()是如何工作的。

代码语言:javascript
复制
def expandtabs(string, n):
    result = ""
    pos = 0
    for char in string:
        if char == "\t":
            # instead of the tab character, append the
            # number of spaces to the next tab stop
            char = " " * (n - pos % n)
        if char == "\n":
            pos = 0
        else:
            pos += len(char)
        result += char
    return result

    input = "123\t12345\t1234\t1\n12\t1234\t123\t1"
    print(expandtabs(input, 10))

我的问题是在输出的第一行,在打印123和7个空格后,是不是变量pos在循环12345之后会增加到8?为什么12345之后的空格不是2?

EN

回答 1

Stack Overflow用户

发布于 2018-06-05 20:00:52

pos当一个制表符被扩展到几个空格时,该变量会被多次更新。在每个标签之后,pos将始终是多个n标签,因为这是标签设计工作的方式(它们总是让您碰到下一个标签)。

所以,以后'123\t'你就必须pos等于10,以后123\t12345你就必须pos等于15.你得到5个空间,从下一个标签,同时pos为20。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100001652

复制
相关文章

相似问题

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