python 字符串前 r f u b
Python 2023/4/24 16:23:18 点击:不统计
<网f站o学a习s制p作.cn>
在写python过程中,经常看到字符串前面有 r f u b 4个字符类型的字符串,那他们什么意思呢,我们逐一学习
1. 首先看r 这个是我在写windos python字符串路径中见过最多的,r 的意识是,不再转义
看代码:
path= "E:\\forasp\\cn\\1.txt" # 为了输出\ 写了两个\\
print(path)
path = r"E:\forasp\cn\1.txt" # 这里就直接输出 \
print(path)
看结果:
E:\forasp\cn\1.txt
E:\\forasp\\cn\\1.txt
这里需要注意的是,在有些情况下是不能使用的,比如在unicode 里面
需要通过 repr 进行操作
path = repr(value)
2. python字符串前面f 在python的意思 是format 格式化,直接可以将变量输出
看代码
site_name = "forasp.cn"
print("site_name="+str(site_name))
# 通过 f 格式化
print(f"site_name={site_name}")
print(f"site_name=%s" % site_name)
看结果
site_name=forasp.cn
site_name=forasp.cn
site_name=forasp.cn
3. python字符串前u 表示unicode 编码
看代码,线转义为unicode 后转回来
print('网站制作学习网'.encode('unicode-escape').decode())
site_name = u"\u7f51\u7ad9\u5236\u4f5c\u5b66\u4e60\u7f51"
print("site_name=" + str(site_name))
输出结果
\u7f51\u7ad9\u5236\u4f5c\u5b66\u4e60\u7f51
site_name=网站制作学习网
4. python 字符串前面的b 表示 byte 二进制
Python3 中,bytes 和 str 的互相转换方式是
str.encode(‘utf-8')
bytes.decode(‘utf-8')
看代码
print('网站制作学习网'.encode('utf-8'))
site_name = b"\xe7\xbd\x91\xe7\xab\x99\xe5\x88\xb6\xe4\xbd\x9c\xe5\xad\xa6\xe4\xb9\xa0\xe7\xbd\x91".decode("utf-8")
print("site_name=" + str(site_name))
site_name = "\xe7\xbd\x91\xe7\xab\x99\xe5\x88\xb6\xe4\xbd\x9c\xe5\xad\xa6\xe4\xb9\xa0\xe7\xbd\x91".decode("utf-8")
print("site_name="+str(site_name))
看结果:
b'\xe7\xbd\x91\xe7\xab\x99\xe5\x88\xb6\xe4\xbd\x9c\xe5\xad\xa6\xe4\xb9\xa0\xe7\xbd\x91'
b'\xe7\xbd\x91\xe7\xab\x99\xe5\x88\xb6\xe4\xbd\x9c\xe5\xad\xa6\xe4\xb9\xa0\xe7\xbd\x91'
site_name=网站制作学习网
Traceback (most recent call last):
File "/test.py", line 19, in <module>
main()
File "/test.py", line 13, in main
site_name = "\xe7\xbd\x91\xe7\xab\x99\xe5\x88\xb6\xe4\xbd\x9c\xe5\xad\xa6\xe4\xb9\xa0\xe7\xbd\x91".decode("utf-8")
AttributeError: 'str' object has no attribute 'decode'. Did you mean: 'encode'?
后面没有 在字符串前加 b 的则提示报错了
http://%77%77%77%2E%66网站制作%6F学习网%72%61%73%70%2E%63%6E
·上一篇:python 判断 包含数字 >> ·下一篇:xpath h标签下无法获取p元素 >>