Python字符串模式(r,b,f,u)详解

Python字符串模式

一、环境

  • python版本:3.10
  • 操作系统:windows 10 x64
  • 集成环境:Visual Studio Code (VSC)

二、字符串模式

r模式f模式u模式b模式
r’’f’’u’’b’’

1、r模式

r模式,又称原始字符串模式,意思是将字符串内的转义符\视作普通符号。对于Python等大多数编程语言来说,字符串中的反斜杠\具有非常特殊的含义。如果你不做特殊的说明,\会被程序视做一种标记,程序会对标记后面紧挨着的字符进行特殊的编译。
比如:

>>> para = 'a\nb'
>>> print(para)  # 你会发现它输出的并非`a\nb`
a
b
>>> 

\被视作了标记,python识别到了这个标记并将后面的n编译成了换行符。这个时候如果想要表示\本身的话,就需要进行一个特殊的说明。r模式是实现这种说明的方法之一:

>>> para = r'a\nb'  # 字符串前加上r表示进入r模式
>>> print(para) 
a\nb
>>> 

2、f模式

f模式,又称格式化字符串。这个模式下可以把变量以{variable}的形式埋到字符串中。

>>> num = 3                   
>>> a = f'I like number {num}' # 把变量num以{num}的封装形式埋到字符串里
>>> print(a)
I like number 3 # 此时的a就等效于 a = 'I like number 3'
>>> 

当然,这个例子有点无聊。r模式的优势是让字符串变得能像变量一样动起来,领会下面这个Demo:

>>> for num in range(3,7):                      
...     print(f'I like number {str(num)*num}')  # {}里面进行了一次变量的运算:str(num) * num,表示将num重复num次
... 
I like number 333    
I like number 4444   
I like number 55555  
I like number 666666 
>>>

3、u模式

u模式来将字符串的类型显性的标记为utf字符,防止出现系统字符集不同造成的乱码问题。

4、b模式

b模式,将字符串的类型显性的标记为字节。由于计算机对字符的存储本质上是存储他的编码,所以这个模式最常见的运用是用来表示字符编码。有些网站会提供编码表,方便大家查阅一些汉字或者字母对应的计算机编码,比如如下网站:

正如上文所说,计算机并不存储字符,而是存储字符对应的编码。以现行主流的Unicode字符集下面的utf8编码规则为例,例如的16进制编码是E5ADA6

>>> num = b'\xE5\xAD\xA6'     # 这里的b''就是显性的告诉python解释器,后面存储的是字符集编码(更本质的叫法是byte对象)
>>> 
>>> print(num.decode('utf8')) # 既然是字符集编码,就可以调用decode方法,进行编码<->文字转换>>> 
  • python 对于16进制的表达方式是\x--,所以在python中表达编码E5ADA6需要写成\xE5\xAD\xA6的形式。
  • 1
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大尾巴鱼_root

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值