python中字符串的内建函数之expandtabs的用法

一、str.expandtabs()

进入这个函数之前,我们来看看:

str_1 = 'abc\tdef'
print(str_1)  # abc	def

str_2 = '\t'
print(len(str_2))  # 1

根据打印结果来看,abc距离def一个字符的间距。在字符串中\t的长度为1(tab键也就是\t,通常说的是4个字符长度,我们写分支结构时,也常用tab键进行4个字符长度的缩进)

str.expandtabs()这个函数的目的是把字符串中的tab符号\t转为空格,具体转为几个空格,由参数tabsize决定。

误区:并不是参数tabsize是多少空格数为多少,两者不等。参数是多少说明有多少个字符为一组:若参数tabsize = 6,那么字符串将以长度为6的字符为一组;若参数tabsize没有写,则默认tabsize = 8,那么字符串将以长度为8的字符为一组。以不同的字符长度将字符串分为若干组。

语法:str.expandtabs(tabsize)

若参数tabsize没有写,则默认tabsize = 8,那么\t转为的空格数 = 8 - \t前字符串的长度

接下来,我们看看案例:
str = "runoob\t12345\tabc"
print(str.expandtabs())  
# runoob  12345   abc

说明:
这里参数没有赋值默认为8,参数tabsize=8 > \t前字符串的长度=6。那么\t转为的空格数 = 8 - \t前字符串的长度。

runnob 有 6 个字符,后面的 \t 填充 2 个空格
12345 有 5 个字符,后面的 \t 填充 3 个空格

案例:
str = "runoob\t12345\tabc"
print(str.expandtabs(2))  # runoob  12345 abc

print(str.expandtabs(3))  # runoob   12345 abc

print(str.expandtabs(4))  # runoob  12345   abc

print(str.expandtabs(5))  # runoob    12345     abc

print(str.expandtabs(6))  # runoob      12345 abc

说明:参数tabsize依次等于2,3,4,5,6,字符串将分别以2、3、4、5、6的字符长度分为一组。


tabsize=2,runoob字符长度为6可分为3组,ru、no、ob各为一组,第一个\t为一组那么代表连哥哥空格,1234分为两组,5和一个空格组队。

tabsize=4,runo为一组,ob加上两个空格为一组,故第一个\t为两个空格;1234为一组,5只能和三个空格为一组,故第二个\t为三个空格

tabsize=6,runnoob分为一组,由于runoob没有剩余字母分给第一个\t,故单独为一组
代表6个空格,12345还少一个长度即可组队,故这时第二个\t代表一个空格。

扫描二维码关注公众号,回复: 16241566 查看本文章

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_71422677/article/details/132220486
今日推荐