原文链接:http://learnpythonthehardway.org/book/ex10.html
在Exercise 9中我介绍了一些新的知识给你,是为了让你循序渐进的学习。上一节中我展示了让一个字符串分多行打印输出的两种方法。第一中方法是在以月份命名的字符串之间放了 \n 字符。你只要在两个字符需要分行输出的地方放入一个换行符就可以了。
这里使用的 \ (反斜杠)字符可以将一些难以输出的字符放入字符串中输出。有许多不同的字符的“转义序列”需要转化才可以写入字符串中,这里有一个特殊的字符,双反斜杠就是两个反斜杠组成的 \\ 。这两个字符将只被输出一个反斜杠。我们解析来了会使用这些字符,你就会明白我在说什么了。
另一个重要的转义序列是转化一个单引号或者双引号。想象一下你在一个字符串中使用了双引号并且你想要输出它。如果你是这样写的:”I "understand" joe."这样Python就会误认为“understand"两边的双引号是字符串结束时使用的双引号。你需要有一种方法来告诉Python字符串里面的双引号并不是一个正在的双引号。
为了解决这个问题,你就需要对单引号和双引号做字符转义,这样Python 就能正确识别了。例如:
”I am 6'2\" tall." , #escape double-quote inside string
'I am 6\'2" tall.' #escape single-quote inside string
第二种方法就是使用三个双引号 “”“ ,工作原理类似于字符串,但是在你再输入”“”之前你可以想输入多少行文本就输入多少行。我们也会在下面练习中演示。
tabby_cat = "\tI'm tabbed in."
persian_cat = "I'm split\non a line."
backslash_cat = "I'm \\ a \\ cat."
fat_cat = """
I'll do a list:
\t* Cat food
\t* Fishies
\t* Catnip\n\t* Grass
"""
print tabby_cat
print persian_cat
print backslash_cat
print fat_cat
输出结果如下:
E:\>python ex10.py
I'm tabbed in.
I'm split
on a line.
I'm \ a \ cat.
I'll do a list:
* Cat food
* Fishies
* Catnip
* Grass
转义序列:
Escape | What it does. |
---|---|
\\ | Backslash () |
\' | Single-quote (') |
\" | Double-quote (") |
\a | ASCII bell (BEL) |
\b | ASCII backspace (BS) |
\f | ASCII formfeed (FF) |
\n | ASCII linefeed (LF) |
\N{name} | Character named name in the Unicode database (Unicode only) |
\r ASCII | Carriage Return (CR) |
\t ASCII | Horizontal Tab (TAB) |
\uxxxx | Character with 16-bit hex value xxxx (Unicode only) |
\Uxxxxxxxx | Character with 32-bit hex value xxxxxxxx (Unicode only) |
\v | ASCII vertical tab (VT) |
\ooo | Character with octal value ooo |
\xhh | Character with hex value hh |
试试这一小段有趣的代码:
while True:
for i in ["/" ,"-", "|" ,"\\" ,"|"]:
print "%s\r" % i,