目录
1. 单/双引号:single quotes/double quotes
2. 字符串换行
3. 长字符串:triple quotes
4. 原始字符串:r
5. 转义字符
5.1 编码转义字符
5.2 控制转义字符
若干个字符的集合就是一个字符串(String)。字符串的内容可以包含字母、标点、特殊符号、中文、日文等全世界的所有文字。
可分为单引号:single quotes、双引号:double quotes、长字符串:triple quotes
1. 单/双引号:single quotes/double quotes
Python 字符串中的双引号和单引号没有任何区别。
当字符串内容中出现引号时,需要进行特殊处理:
- 如字符串中只出现了单引号或双引号,那么我们可以使用另一种引号包围字符串;
- 字符串里的引号前添加反斜杠,对引号进行转义,让 Python 把它作为普通文本处理,可解决字符串同时出现单双引号情况;
- 使用原始字符串。
#单引号
print('i love china!')
i love china!
#双引号
print("i love china!")
i love china!
#使用另一种引号
print('I say:"Oh my god!"')
I say:"Oh my god!"
print("I say:'Oh my god!'")
I say:'Oh my god!'
#同时有单双引号,使用转义字符,否则报错
print('"life is short, Let's Learn python')
SyntaxError: unterminated string literal (detected at line 1)
print('"life is short, Let's Learn python"')
"life is short, Let's Learn python"
2. 字符串换行
Python 对程序的换行、缩进都有严格的语法要求。如字符串需要换行书写,必须在行尾添加反斜杠,或者使用长字符串。
#换行书写 s = 'a ... b ... c' print(s) a bc #换行书写+转义字符换行 s = 'an ... bn ... c' print(s) a b c
3. 长字符串:triple quotes
长字符串格式如下:
'''ABC''' """ABC"""
长字符串,使用三个单引号或者双引号可以对多行内容进行注释,支持直接换行,无需添加反斜杠;
前后所用必须一致为单引号或双引号;
长字符串中放置单引号或者双引号不会导致解析错误;
长字符串中换行、空格、缩进等空白符都会原样输出,注意首行前有换行,则输出时出现空白行,如下:
s = ''' ... abc d! ... 中文12。3''' print(s) abc d! 中文12。3
4. 原始字符串:r
字符串中的反斜杠有着特殊的作用,即转义字符,此时有两种解决方法:
- 使用\替换掉字符串中的
- 字符串最前面使用字母r表示后续字符串是原始字符串,不使用任何转义字符
在原始字符串中,不会被当作转义字符,所有的内容保持“原汁原味”,如下;
#因转义字符导致字符串输出错误
print("D:threetwoonenow")
D: hree woone
ow
#使用\替换
print("D:\three\two\one\now")
D:threetwoonenow
#使用原始字符串
print(r"D:threetwoonenow")
D:threetwoonenow
如单双引号格式的原始字符串中出现引号,程序同样需要对引号进行转义,否则 Python 无法对字符串的引号精确配对,但此时用于转义的反斜杠会变成字符串内容的一部分,建议此种情况使用:原始字符串+长字符串 r'''abc''',如下:
print(r'I say:"That's http:\ABC?"') I say:"That's http:\ABC?" print(r'''I say:"That's http:\ABC?"''') I say:"That's http:\ABC?"
由于Python 原始字符串中的反斜杠仍然会对引号进行转义,因此原始字符串的结尾处不能是反斜杠,否则字符串结尾处的引号会被转义,导致字符串不能正确结束。有两种方法解决该问题:
- 使用\替代;
- 单独书写反斜杠。
#使用\替代;
print('D:\three\two\one\now\')
D:threetwoonenow
#单独书写反斜杠
print(r'D:threetwoonenow''\')
D:threetwoonenow
5. 转义字符
5.1 编码转义字符
Python 中,ASCII 字符除直接使用外,还可以应用它的ASCII编码值表示,参见Ascii码 。这种使用间接编码值来表示字符的方式称为转义字符(Escape Character)。
Python 中转义字符只能使用八进制或者十六进制转义字符表示;


