一些特殊字符无法直接在字符串里表示, 这时就必须使用转义字符, 比如回车,换行, 单引号,双引号等等。文章题目虽然用了python转义字符这个词,但转义字符不是python这门语言所独有的,准确的讲,这是一个计算机专业词汇。
在计算机当中,有些字符我们无法手动书写,你可以手写出字母abcd,但你能写出来换行符么?你能看得见换行符么?
具体都有哪些转义字符呢,见下表
转义字符 | 描述 |
---|---|
\(在行尾时) | 续行符 |
\\ | 反斜杠符号 |
\' | 单引号 |
\" | 双引号 |
\a | 响铃 |
\b | 退格(Backspace) |
\e | 转义 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制数,yy代表的字符,例如:\o12代表换行 |
\xyy | 十六进制数,yy代表的字符,例如:\x0a代表换行 |
\other | 其它的字符以普通格式输出 |
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