Python3 expandtabs()方法
描述
expandtabs() 方法把字符串中的 tab 符号 \t 转为空格,tab 符号 \t 默认的空格数是 8,在第 0、8、16...等处给出制表符位置,如果当前位置到开始位置或上一个制表符位置的字符数不足 8 的倍数则以空格代替。
语法
expandtabs() 方法语法:
str.expandtabs(tabsize=8)
参数
- tabsize -- 指定转换字符串中的 tab 符号 \t 转为空格的字符数。
返回值
该方法返回字符串中的 tab 符号 \t 转为空格后生成的新字符串。
实例
以下实例展示了 expandtabs() 方法的实例:
实例
#!/usr/bin/python3
str = "runoob\t12345\tabc"
print('原始字符串:', str)
# 默认 8 个空格
# runnob 有 6 个字符,后面的 \t 填充 2 个空格
# 12345 有 5 个字符,后面的 \t 填充 3 个空格
print('替换 \\t 符号:', str.expandtabs())
# 2 个空格
# runnob 有 6 个字符,刚好是 2 的 3 倍,后面的 \t 填充 2 个空格
# 12345 有 5 个字符,不是 2 的倍数,后面的 \t 填充 1 个空格
print('使用 2 个空格替换 \\t 符号:', str.expandtabs(2))
# 3 个空格
print('使用 3 个空格:', str.expandtabs(3))
# 4 个空格
print('使用 4 个空格:', str.expandtabs(4))
# 5 个空格
print('使用 5 个空格:', str.expandtabs(5))
# 6 个空格
print('使用 6 个空格:', str.expandtabs(6))
以上实例输出结果如下:
原始字符串: runoob 12345 abc 替换 \t 符号: runoob 12345 abc 使用 2 个空格替换 \t 符号: runoob 12345 abc 使用 3 个空格: runoob 12345 abc 使用 4 个空格: runoob 12345 abc 使用 5 个空格: runoob 12345 abc 使用 6 个空格: runoob 12345 abc
yao_yaofu
522***154@qq.com
\t 解释补充
\t 是补全当前字符串长度到8的整数倍,最少 1 个最多 8 个空格。
补多少要看你 \t 前字符串长度。
比如当前字符串长度 10,那么 \t 后长度是 16,也就是补 6 个空格。
如果当前字符串长度 12,此时 \t 后长度是 16,补 4 个空格。
实例:
运行结果如下:
yao_yaofu
522***154@qq.com
钅钅钅
153***2334@qq.com
在 Python3 中是补 4 的整数倍个空格:
输出结果为:
钅钅钅
153***2334@qq.com
Rocky2188
271***81@qq.com
\t:格式化制表符后首字符位置为最小整数倍制表位位置。
输出:
Rocky2188
271***81@qq.com
一条猫
m-y***g@163.com
关于 \t 空格,自己写了写发现并非补全 4 或 8 的整数倍:
输出结果为:
综上,发现 \t补全的空格数 加 \t之前的字符数 呈现规律为等差数列:2,2+8,2+8+8,······
一条猫
m-y***g@163.com
Cola
124***6424@qq.com
2022年更新一下制表符的东西,对于楼上的进行修正,横向制表符输出空格的时候统计个数包括了该行的所有字符,文字(占两个字符)符号等等
版本:python3.11
输出结果:
Cola
124***6424@qq.com