21.1 换行

print 语句我们已经见过很多次了。如果这个语句使用不只一次会发生什么?可以试试这个小程序:

  1. print "Hi"
  2. print "There"

运行这个程序时,输出将是:

  1. >>> =================== RESTART ===================
  2. >>>
  3. Hi
  4. There

为什么这两个内容分别打印在不同的行上?为什么输出不是这样:

  1. HiThere

除非你另外指出,否则 Python 每次执行 print 时都会在新的一行上开始。打印 Hi 之后,Python 会下移一行,并回到第一列来打印 There。Python 会在两个词之间插入一个换行符(newline)。换行符的作用相当于在文本编辑器中按下了回车。

像程序员一样思考

还记得吧?我们在第 5 章已经了解到,CR 和 LF(回车和换行)会标志一个文本行的结束。另外我还说过,有些系统可能只使用其中一个字符(CR 或 LF)表示换行,有些系统则两个都用。换行是所有系统上行末标记的通用名。在 Windows 中,换行 = CR + LF。在 Linux 中,换行 =LF,而在 Mac OS X 中,换行 = CR。所以不必担心你使用哪个系统,希望换行时只需要加入一个换行符。

print 和逗号

print 语句会自动在它打印的内容末尾加一个换行符,除非你明确指出不要这么做。怎么告诉它不换行呢?可以加一个逗号(就像第 5 章中的一样):

  1. print 'Hi',
  2. print 'There'
  3. >>> =================== RESTART ===================
  4. >>>
  5. Hi There

(同样,这段代码不能在 Python 3 中正常运行。)注意 HiThere 之间有一个空格。使用逗号不让 Python 打印换行符时,它会打印一个空格。

如果希望连续打印两个内容而且中间没有空格,可以使用拼接(concatenation),这在前面已经见过

  1. print 'Hi' + 'There'
  2. >>> ==================== RESTART ====================
  3. >>>
  4. HiThere

记住,拼接就像把字符串加在一起,之所以用这个特殊的叫法是因为“相加”只适用于数字。

增加自己的换行符

如果想增加自己的换行符呢?例如,如果希望 HiThere 之间空一行,该怎么做呢?最容易的办法是直接增加一个 print 语句:

  1. print "Hi"
  2. print
  3. print "There"

运行这个代码时,会得到右面的结果:

  1. >>> ================== RESTART ==================
  2. >>>
  3. Hi
  4. There

特殊打印代码

增加换行符还有一种方法。Python 提供了一些特殊的代码,可以把这些代码增加到字符串中,以不同的方式打印。这些特殊的打印代码都以一个反斜线(\)字符开头。

换行符的相应代码是 \n。可以在交互模式中试一下:

  1. >>> print "Hello World"
  2. Hello World
  3. >>> print "Hello \nWorld"
  4. Hello
  5. World

\n 使 HelloWorld 分别打印在不同的行上,因为它在这两个词之间增加了一个换行符。