Python 字符串 expandtabs()

expandtabs() 方法的语法是

string.expandtabs(tabsize)

expandtabs() 参数

expandtabs() 接受一个整数 tabsize 参数。默认的 tabsize 是 8。


expandtabs() 的返回值

expandtabs() 返回一个字符串,其中所有 **'\t'** 字符都替换为空格字符,直到下一个 tabsize 参数的倍数。


示例 1:不带参数的 expandtabs()

str = 'xyz\t12345\tabc'

# no argument is passed
# default tabsize is 8
result = str.expandtabs()

print(result)

输出

xyz     12345   abc

Python 中 expandtabs() 的工作原理是什么?

expandtabs() 方法会跟踪当前光标位置。

上述程序中第一个 **'\t'** 字符的位置是 3。并且,tabsize 是 8(如果未传递参数)。

expandtabs() 字符会将 **'\t'** 替换为空格,直到下一个制表符停止点。**'\t'** 的位置是 3,第一个制表符停止点是 8。因此,'xyz' 后面的空格数为 5。

下一个制表符停止点是 tabsize 的倍数。下一个制表符停止点是 16、24、32 等。

现在,第二个 **'\t'** 字符的位置是 13。并且,下一个制表符停止点是 16。因此,'12345' 后有 3 个空格。


示例 2:使用不同参数的 expandtabs()

str = "xyz\t12345\tabc"
print('Original String:', str)

# tabsize is set to 2
print('Tabsize 2:', str.expandtabs(2))

# tabsize is set to 3
print('Tabsize 3:', str.expandtabs(3))

# tabsize is set to 4
print('Tabsize 4:', str.expandtabs(4))

# tabsize is set to 5
print('Tabsize 5:', str.expandtabs(5))

# tabsize is set to 6
print('Tabsize 6:', str.expandtabs(6))

输出

Original String: xyz	12345	abc
Tabsize 2: xyz 12345 abc
Tabsize 3: xyz   12345 abc
Tabsize 4: xyz 12345   abc
Tabsize 5: xyz  12345     abc
Tabsize 6: xyz   12345 abc

解释

  • 默认的 tabsize 是 8。制表符停止点是 8、16 等。因此,当您打印原始字符串时,'xyz' 后有 5 个空格,'12345' 后有 3 个空格。
  • 当您将 tabsize 设置为 2 时。制表符停止点是 2、4、6、8 等。对于 'xyz',制表符停止点是 4,对于 '12345',制表符停止点是 10。因此,'xyz' 后有 1 个空格,'12345' 后有 1 个空格。
  • 当您将 tabsize 设置为 3 时。制表符停止点是 3、6、9 等。对于 'xyz',制表符停止点是 6,对于 '12345',制表符停止点是 12。因此,'xyz' 后有 3 个空格,'12345' 后有 1 个空格。
  • 当您将 tabsize 设置为 4 时。制表符停止点是 4、8、12 等。对于 'xyz',制表符停止点是 4,对于 '12345',制表符停止点是 12。因此,'xyz' 后有 1 个空格,'12345' 后有 3 个空格。
  • 当您将 tabsize 设置为 5 时。制表符停止点是 5、10、15 等。对于 'xyz',制表符停止点是 5,对于 '12345',制表符停止点是 15。因此,'xyz' 后有 2 个空格,'12345' 后有 5 个空格。
  • 当您将 tabsize 设置为 6 时。制表符停止点是 6、12、18 等。对于 'xyz',制表符停止点是 6,对于 '12345',制表符停止点是 12。因此,'xyz' 后有 3 个空格,'12345' 后有 1 个空格。

另请阅读

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战