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
的形式。