定义字符串
前面我们讲解了什么是字符串。字符串可以用\'\'或者""括起来表示。
如果字符串本身包含\'怎么办?比如我们要表示字符串 I\'m OK ,这时,可以用" "括起来表示:
"I\'m OK"
类似的,如果字符串包含",我们就可以用\' \'括起来表示:
\'Learn "Python" in imooc\'
如果字符串既包含\'又包含"怎么办?
这个时候,就需要对字符串的某些特殊字符进行“转义”,Python字符串用\进行转义。
要表示字符串 Bob said "I\'m OK".
由于 \' 和 " 会引起歧义,因此,我们在它前面插入一个\表示这是一个普通字符,不代表字符串的起始,因此,这个字符串又可以表示为
\'Bob said \"I\\'m OK\".\'
注意:转义字符 \ 不计入字符串的内容中。
常用的转义字符还有:
\n 表示换行 \t 表示一个制表符 \\ 表示 \ 字符本身
任务
请将下面两行内容用Python的字符串表示并打印出来:
Python was started in 1989 by "Guido".
Python is free and easy to learn.
raw字符串与多行字符串
如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦。为了避免这种情况,我们可以在字符串前面加个前缀 r ,表示这是一个 raw 字符串,里面的字符就不需要转义了。例如:
r\'\(~_~)/ \(~_~)/\'
但是r\'...\'表示法不能表示多行字符串,也不能表示包含\'和 "的字符串(为什么?)
如果要表示多行字符串,可以用\'\'\'...\'\'\'表示:
\'\'\'Line 1 Line 2 Line 3\'\'\'
上面这个字符串的表示方法和下面的是完全一样的:
\'Line 1\nLine 2\nLine 3\'
还可以在多行字符串前面添加 r ,把这个多行字符串也变成一个raw字符串:
r\'\'\'Python is created by "Guido". It is free and easy to learn. Let\'s start learn Python in imooc!\'\'\'
任务
请把下面的字符串用r\'\'\'...\'\'\'的形式改写,并用print打印出来:
\'\"To be, or not to be\": that is the question.\nWhether it\\'s nobler in the mind to suffer.\'