我们刚才看到了如何控制垂直间隔(通过增加换行,或者使用逗号来避免换行)。现在我们来看如何利用制表符控制屏幕上内容的水平间隔。
制表符(Tab,也叫做进格符)在按列对齐方面非常有用。要了解制表符是如何工作的,可以想一想屏幕上的每一行都划分为多个大小相同的块时是什么样。下面假设每一个块为 8 个字符宽。插入一个制表符时,就会移到下一个块开始的位置。
要了解具体怎么做,最好的办法就是试一试。制表符的特殊代码是 /t
,所以可以在交互模式先试试:
>>> print 'ABC/tXYZ'ABC XYZ
注意 XYZ
与 ABC
有几个字符的间隔。实际上,XYZ
距离这一行的起始位置正好是 8 个字符。这是因为块的大小是 8。也可以这样讲:每 8 个字符之后有一个制表点(tab stop)。
这个例子中执行了不同的 print
语句,这里增加了一些阴影来显示制表点在哪里:
可以将屏幕(或者每一行)视为按 8 个空格为一块来摆放。注意,尽管 ABC
序列越来越长,但 XYZ
仍保持在原来的位置上。/t
告诉 Python 让 XYZ
从下一个制表点开始,或者从下一个可用的块开始。不过,一旦 ABC
序列长到将第一块填满,Python 就会把 XYZ
下移到下一个制表点。
按列组织内容时,制表符很有用,能让所有内容都对齐。下面就要利用这一点以及我们了解的关于循环的知识,打印一个关于正方形和立方体的表格。在 IDLE 中打开一个新窗口,键入代码清单 21-1 中的小程序,保存这个程序并运行。(我把这个程序命名为 squbes.py,这是“squares and cubes”的简写。)
代码清单 21-1 打印正方形和立方体的程序
print "Number /tSquare /tCube"for i in range (1, 11): print i, '/t', i**2, '/t', i**3
运行这个程序时,应该能看到输出像下面显示的那样准确地对齐:
>>> ====================== RESTART ======================>>>Number Square Cube1 1 12 4 83 9 274 16 645 25 1256 36 2167 49 3438 64 5129 81 72910 100 1000
如何打印反斜线
由于反斜线字符(/)用来表示特殊打印代码,如果我们确实想打印一个 / 字符, 而不是将其作为代码的一部分打印,该如何告诉 Python 呢?我们的技巧是把两个反斜线放在一起:
>>> print 'hi//there'hi/there
第一个 / 告诉 Python 接下来是一些特殊的内容,第二个 / 告诉 Python 这些特殊的内容就是 / 字符。
术语箱
当你使用两个反斜线来打印一个反斜线字符时,第一个反斜线叫做“转义字符”(escape character)。我们说第一个反斜线会将第二个反斜线“转义”,这样第二个反斜线就会被当成普通字符输出,而不是当成特殊字符。