当前位置 : 主页 > 编程语言 > python >

python中字符串前面加f、r、u、b区别 || python转义字符

来源:互联网 收集:自由互联 发布时间:2022-06-20
1.字符串前加 u:后面字符串以 unicode 格式进行编码(表示中文),一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。 【不是仅仅是针对中文, 可以针对

1.字符串前加 u:后面字符串以 unicode 格式进行编码(表示中文),一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。

【不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行unicode编码。一般英文字符在使用各种编码下, 基本都可以正常解析, 所以一般不带u;但是中文, 必须表明所需编码, 否则一旦编码转换就会出现乱码。 建议所有编码方式采用utf8】

使用场景:一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。

 

2.字符串前加 r:在字符串前加r可防止字符串转义

 r"" 的作用是:去除转义字符

①字符串常量,在字符串前加r

场景:想复制某个文件夹的目录,假设是 F:\Python_Easy\n4\test.py 

当不用 r"" ,有三种写法:

print("F:\Python_Easy\n4\test.py ")
print("F:\\Python_Easy\\n4\\test.py ")
print("F:/Python_Easy/n4/test.py ")

运行结果:

F:\Python_Easy
4 est.py
F:\Python_Easy\n4\test.py
F:/Python_Easy/n4/test.py

而通常如果直接复制目录路径的话,你就粘贴出来的字符串就是第一行代码所示,所有 \ 会当成转义符;而为了消除转义作用,需要手动再加一个 \ ,否则你也得手动改成何第三行代码一样。

而 r"" 的出现就是为了避免这种情况。

②如果字符串是从文件中读取,则在读取时加r

例如:有文件 test.txt中有 adfdfasd\tfdsadf\t E:\codes

则代码可以这么写:

file1=open(r"text.txt","r")

for line in file1:

print(line)

结果为:

adfdfasd\tfdsadf\t E:\codes

 

3.字符串前加 b:b" "前缀表示:后面字符串是bytes类型【 b' ' 表示后面的字符串是bytes 对象】。

网络编程中,服务器和浏览器只认bytes 类型数据。

在 Python3 中,bytes 和 str 的互相转换方式:

str--->bytes:【str.encode('utf-8')】
bytes--->str:【bytes.decode('utf-8')】

举例:

print("中文".encode(encoding="utf-8"))
print(b'\xe4\xb8\xad\xe6\x96\x87'.decode())
print(r'\xe4\xb8\xad\xe6\x96\x87')

运行结果:

b'\xe4\xb8\xad\xe6\x96\x87'
中文
\xe4\xb8\xad\xe6\x96\x87

可以看到,当你不加 b"" 时,他也就是个普通的字符串而已,不会识别为字节类型。

bytes数据类型应用场景:像图片、音视频等文件的读写就是用bytes数据。

 

4.字符串前加 f:以f开头表示在字符串内支持大括号内的python 表达式

作用:相当于 format 函数。

例如:

name = "帅哥"
age = 12
print(f"my name is {name},age is {age}")

运行结果:

my name is 帅哥,age is 12

 

 

转义字符

描述

\(在行尾时)

续行符

\\

反斜杠符号

\'

单引号

\"

双引号

\a

响铃

\b

退格(Backspace)

\e

转义

\000

空

\n

换行

\v

纵向制表符

\t

横向制表符

\r

回车

\f

换页

\oyy

八进制数yy代表的字符,例如:\o12代表换行

\xyy

十进制数yy代表的字符,例如:\x0a代表换行

\other

其它的字符以普通格式输出

去期待陌生,去拥抱惊喜。

网友评论