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_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 其它的字符以普通格式输出
posted @   习久性成  阅读(2402)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示