转义字符

1.什么是转义字符

一些特殊字符无法直接在字符串里表示, 这时就必须使用转义字符, 比如回车,换行, 单引号,双引号等等。文章题目虽然用了python转义字符这个词,但转义字符不是python这门语言所独有的,准确的讲,这是一个计算机专业词汇。

在计算机当中,有些字符我们无法手动书写,你可以手写出字母abcd,但你能写出来换行符么?你能看得见换行符么?

具体都有哪些转义字符呢,见下表

转义字符描述
\(在行尾时) 续行符
\\ 反斜杠符号
\' 单引号
\" 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\000
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,yy代表的字符,例如:\o12代表换行
\xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
\other 其它的字符以普通格式输出

2.转义字符的实际应用

单引号,双引号在字符串里

python当中,定义一个字符串可以使用单引号,比如s = 'abcd',那么如何在这样的字符串里写一个单引号呢?比如你需要定义一个字符串 it's a book

s = 'it's a book'

如果你是这样实现的,编辑器就会报错,因为这个字符串是用单引号括起来的,可是中间又出现一个单引号,到底哪两个单引号构成一个字符串呢?这里面就出现了歧义,而计算机最怕的就是歧义。

这种情况下,你就需要使用转义字符了

s = 'it\'s a book'

单引号的你学会了,双引号的也是相同的道理

s = "使用\"创建字符串"

如果要在字符串里使用 \ 呢,则需要写成 \

s = "换行符是\\n"
print(s)

执行代码,输出结果为

换行符是\n

写文件时使用换行符

lst = ['book', 'python', 'good']

现在要求你将列表里的单词写入到文件中,每个单词一行,写文件要用write方法,但是这个方法是不会主动添加换行符的,因此我们必须主动加上

lst = ['book', 'python', 'good']

with open('data', 'w')as f:
    for word in lst:
        f.write(word + "\n")

如果你把代码里的f.write(word + "\n") 修改成f.write(word),文件里最终只有一行数据

读取文件时,要去掉换行符

读取文件时,不论是是用readline,还是readlines,每一行的末尾的换行符也会被读取,但这个换行符是没有什么作用的,因此需要删除

with open('data', 'r')as f:
    for line in f:
        print(line.strip())

程序输出结果是

book
python
good

字符串的strip方法可以移除字符串头尾指定的字符(默认为空格或换行符)或字符序列

如果你把print(line.strip())这行代码改成print(line),不去除末尾的换行符,程序最终输出结果就会变成

book

python

good

输出的内容不是紧挨着的,这是因为读取到的line末尾有一个换行符,print输出原本就是换行输出的,再加上line带的换行,就会导致这样的结果。

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案