-

2. python 字符串常量

1.单双引号字符串是一样的

  >>> 'abc',"abc"  
  ('abc''abc')  
  >>>   

当你的 python 照着上面的例子来写,这个时候单双引号字符串是一样的。两者可以互换。

我们甚至可以在单双引号直接引入对方

  >>> 'abc"d',"abc'd"  
  ('abc"d'"abc'd")  

在任意表达式中,python会自动合并相连的字符串,尽管它们之间没有通过+连接

  >>> 'abc"d',"abc'd"  
  ('abc"d'"abc'd")  

还有,就像上面的几个例子,在字符串中间加上逗号,最后形成的是元组而不是字符串

2.使用转义字符表示特殊字符

  >>> a='abc\ndef\r'  
  >>> a  
  'abc\ndef\r'  
  >>> print(a)  
 abc  
  def  
    
  >>>   

看上面的例子,字符串之间加上转义字符,如果我们直接用变量打印,他会把所有字符都打印出来,但是如果使用 print 打印,转义字符会从原来的字符串变成二进制值,例如:\n代表制表符等等

常见的转义字符:

转义 意义
\ 连续,接着上面一行
\ 反斜杠
\' 单引号
\" 双引号
\a 响铃
\b 倒退
\f 换页
\n 换行
\r 返回
\t 水平制表符
\v 垂直制表符
\N{id} unicode 数据库 id
\uhhhh unicode16 位的十六进制值
\Uhhhh unicode32位的十六进制值
\xhh 十六进制值
\ooo 八进制值
\0 Null
\other 不转义

3.raw 字符串抑制转义

有很多时候我们需要打开文件等,那么就需要输入路径,特别是 window 的路径,大多使用反斜杠,这个时候就会出现问题

例如:

handler=open('c:\nb123.txt','w')  

这个时候就出问题了,本来是打开 nb123 这个文本文件,但是由于前面有个反斜杠,在转义当中是换行,引起歧义

所以,我们需要把路径改成下面的样子:

  handler=open(r'c:\nb123.txt','w')  
  handler=open('c:\\nb123.txt','w')  

这个时候就是合法的,使用r来抑制转义,或者使用双反斜杠

4.使用三重双引号来输入多字符串

 >>> a="""aaabbb 
  ccdcdef'ddfdfd"""  
  >>> a  
  "aaabbb\nccdcdef'ddfdfd"  

它常用于文档字符串,或者注释大段的代码