Python字符串expandtabs()
时间:2020-02-23 14:43:25 来源:igfitidea点击:
Python字符串expandtabs()函数返回一个新的字符串,其中的制表符(\ t)替换为一个或者多个空格。
Python字符串expandtabs()
该函数语法为:
str.expandtabs(tabsize=8)
我们可以指定tabsize参数来指定扩展制表符时要使用的空格数。
tabsize参数的默认值为8。
Python将在找到制表符之前考虑存在的字符。
要使用的空格数等于制表符大小减去制表符前的字符数。
如果字符数大于制表符的大小,则使用制表符的下一个倍数,即8,16,24,依此类推。
如果要替换多个制表符,则仅计算制表符之前的字符,直到到达前一个制表符为止。
Python字符串expandtabs()示例
让我们来看一个expandtabs()函数的简单示例。
s = 'A\tB\tC\tD' print(s.expandtabs()) # Output: # A B C D
请注意,每个制表符之前只有一个字符,因此使用7个空格替换制表符。
让我们看另一个示例,在制表符之前添加更多字符。
s = 'ABCD\tE\tF' print(s.expandtabs()) # Output: # ABCD E F
第一个制表符前面有4个字符,因此使用8-4 = 4空格扩展制表符。
对于第二个制表符,前面只有1个字符,因此使用8-1 = 7空格来扩展制表符。
让我们看另一个示例,其中制表符前的字符数大于制表符大小。
s = 'ABCDEFGHIJK\tG' print(s.expandtabs()) # Output: # ABCDEFGHIJK G
选项卡前有11个字符,因此使用8 * 2-11 = 5空格来扩展选项卡。
让我们看看这种情况的另一个示例。
s = 'ABCDEFGHIJK\t\tG' print(s.expandtabs()) # Output: # ABCDEFGHIJK G
第一个选项卡扩展为8 * 2-11 = 5个空格,而第二个选项卡扩展为8-0 = 8个空格。
这就是为什么输出字符串中有13个空格的原因。
带有tabsize的Python字符串expandtabs()
让我们看一些带有可变tabsize的示例。
s = 'ABC\tD' print(s) print(s.expandtabs()) print(s.expandtabs(tabsize=0)) print(s.expandtabs(tabsize=1)) print(s.expandtabs(tabsize=2)) print(s.expandtabs(tabsize=3)) print(s.expandtabs(tabsize=4)) print(s.expandtabs(tabsize=5)) print(s.expandtabs(tabsize=6)) print(s.expandtabs(tabsize=7))
只要遵循上述规则,您就可以轻松理解输出。
我们可以为Tabsize指定一个负值吗?让我们用一个简单的代码片段进行检查。
s = 'ABC\tD' print(s.expandtabs(tabsize=-1)) print(s.expandtabs(tabsize=-3))
输出:
ABCD ABCD
很明显,当提供负的tabsize值且不会引发任何错误时,Python会将tabsize设为0。