Python制表符\t的原理、制表符的使用
文章目录
- 一、代码缩进
- 二、数据对齐(重点)
- 2.1、制表符对齐原理
- 三、总结
在Python中,制表符(\t)的主要作用包括
代码缩进
和
数据对齐。
制表符(\t)在Python中用于插入一个制表符,这个制表符在Cmd中通常占据8个空格的宽度;在Pycharm中通常占4个空格的宽度。具体参考《python pycharm与cmd中制表符不一样》
一、代码缩进
在Python中,制表符常用于代码段的缩进,以提高代码的可读性和可维护性。通过使用制表符进行缩进,可以使代码结构更加清晰,便于阅读和维护。
在Python中,制表符\t和Tab键是同一个概念
,没有区别。制表符是通过按下键盘上的Tab键来输入的,Tab键通常位于键盘上方的Q键和Caps Lock键之间,外观类似于一个带有箭头的矩形图标
def test():
#用Tab键缩进,使每个层级有四个空格
print("hello")
for i in range(10):
print(i)
如上图,test函数下面的每行代码前面都可以用Tab键缩进,表示四个空格。这使代码更易于阅读和理解。
二、数据对齐(重点)
制表符还可以用于将数据列对齐,以创建整齐的表格。例如:
print('姓名\t年龄\t职业')
print('张三\t25\t程序员')
print('李四\t300\t收银员')
# 输出结果
D:\App\python\python3.13.0\python.exe D:\WorkSpace-Python\Test\test.py
姓名 年龄 职业
张三 25 程序员
李四 300 收银员
从上图可以看到制表符\t会自动对齐文本。
注意:
print('姓名\t年龄\t职业')
print('张三\t25\t程序员')
print('李四\t3000\t收银员')
# 运行结果:
D:\App\python\python3.13.0\python.exe D:\WorkSpace-Python\Test\test.py
姓名 年龄 职业
张三 25 程序员
李四 3000 收银员
如下图:代码中仅仅是年龄多了一个数字,上下两行就对不齐了
那么原理是什么呢?为什么仅仅差了一个数字,就不能对齐了呢?
2.1、制表符对齐原理
制表符对齐的原理是什么呢?为什么可以实现自动对齐呢?我搜了下没找到官方的文档说明,那么结合下面示例,说一下自己的理解。
先给出自己的理解:Pycharm中制表符(\t)前面的字符所占宽度必须是4的倍数,若不是4的倍数,则补充空格到4的倍数。若制表符(\t)前面的字符所占宽度是4的倍数,则生成4个空格。
print('123\t456789')
print('1234\t56789')
print('12345\t6789')
print('123456\t789')
print('1234567\t89')
print('12345678\t9')
#输出内容:
D:\App\python\python3.13.0\python.exe D:\WorkSpace-Python\Test\test.py
123 456789 # 前面3个数字只占了3个宽度,所以\t补充了一个空格
1234 56789 #当数字占空格数量为4个时,他就会仍外开辟出新的空间(4个空格)
12345 6789 # 前面5个数字只占了5个宽度,所以\t补充了三个空格
123456 789
1234567 89
12345678 9 #当数字占空格数量为8个时,他就会仍外开辟出新的空间(4个空格)
如上图,每当数字占满4个或4的倍数时,就会生成4个空格;当制表符(\t)前面的字符宽度不是4的倍数时,则补充空格到4的倍数。结合上面的示例我们推测:Pycharm中制表符(\t)前面的字符所占宽度必须是4的倍数,若不是4的倍数,则补充空格到4的倍数。若制表符(\t)前面的字符所占宽度是4的倍数,则生成4个空格。
三、总结
Pycharm中制表符(\t)前面的字符所占宽度必须是4的倍数,若不是4的倍数,则补充空格到4的倍数。若制表符(\t)前面的字符所占宽度是4的倍数,则生成4个空格。
因为Pycharm与Cmd制表符的宽度不一致, 制表符(\t)在Cmd中通常占据8个空格的宽度;在Pycharm中通常占4个空格的宽度。所以在cmd中就是满8的倍数,然后会生成8个空格。
代码示例如下:
C:\Users>python
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> str='123\t456789\n'
>>> str+='1234\t56789\n'
>>> str+='12345\t6789\n'
>>> str+='123456\t789\n'
>>> str+='1234567\t89\n'
>>> str+='12345678\t9\n'
>>> print(str)
123 456789
1234 56789
12345 6789
123456 789
1234567 89
12345678 9