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

网友投稿 2528 2022-08-28


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

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_Easy4 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 = 12print(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

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

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java Validated 分组校验的使用
下一篇:python异常处理之如何处理异常 & traceback.print_exc()跟traceback.format_exc()的区别(python异常处理方式)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~