首页 » 父与子的编程之旅:与小卡特一起学Python » 父与子的编程之旅:与小卡特一起学Python全文在线阅读

《父与子的编程之旅:与小卡特一起学Python》21.2 水平间隔制表符

关灯直达底部

我们刚才看到了如何控制垂直间隔(通过增加换行,或者使用逗号来避免换行)。现在我们来看如何利用制表符控制屏幕上内容的水平间隔。

制表符(Tab,也叫做进格符)在按列对齐方面非常有用。要了解制表符是如何工作的,可以想一想屏幕上的每一行都划分为多个大小相同的块时是什么样。下面假设每一个块为 8 个字符宽。插入一个制表符时,就会移到下一个块开始的位置。

要了解具体怎么做,最好的办法就是试一试。制表符的特殊代码是 /t,所以可以在交互模式先试试:

>>> print 'ABC/tXYZ'ABC     XYZ  

注意 XYZABC 有几个字符的间隔。实际上,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)。我们说第一个反斜线会将第二个反斜线“转义”,这样第二个反斜线就会被当成普通字符输出,而不是当成特殊字符。