python 的字符串前缀

在 Python 中,字符串字面量(string literals)可以使用**前缀(prefixes)**来指定其类型或行为。目前官方支持的字符串前缀主要有以下 4 种:


✅ 1. r ------ 原始字符串(Raw String)

  • 作用 :禁用反斜杠 \ 的转义功能,所有字符按字面意思处理。

  • 返回类型 :str

  • 典型用途:正则表达式、Windows 文件路径

  • 示例 :

    复制代码
    r'\n\t'      # 字符串内容是:\n\t(4个字符)
    r'C:\Users'  # 不会因 \U 被误解析为 Unicode 转义

✅ 2. f ------ 格式化字符串(Formatted String Literal,f-string)

  • 作用 :在字符串中嵌入表达式(用 {} 包裹),Python 3.6+ 引入

  • 返回类型 :str

  • 典型用途:动态拼接变量、调用函数等

  • 示例 :

    复制代码
    name = "Alice"
    f"Hello, {name.upper()}!"  # → 'Hello, ALICE!'

💡 可与 r 组合:rf'C:\Users\{name}'


✅ 3. b ------ 字节字符串(Bytes Literal)

  • 作用 :创建 bytes 对象(不是字符串!)

  • 返回类型 :bytes

  • 典型用途:网络协议、文件二进制读写、加密、哈希等

  • 注意:只能包含 ASCII 字符(非 ASCII 需显式编码)

  • 示例 :

    复制代码
    b'hello'     # → b'hello' (类型是 bytes)
    type(b'abc') # → <class 'bytes'>

✅ 4. u ------ Unicode 字符串(Unicode Literal)

  • 作用 :显式声明字符串为 Unicode(仅在 Python 2 中有意义)

  • 返回类型 :str(Python 3 中所有字符串默认就是 Unicode)

  • 现状 :Python 3 中 u'...' 与 '...' 完全等价,主要用于兼容旧代码或强调语义

  • 示例 :

    复制代码
    u"你好"  # Python 3 中和 "你好" 没区别

🧩 组合规则

组合 是否合法 说明
fr 或 rf ✅ 合法 原始格式化字符串(如 rf'\n{var}')
rb 或 br ❌ 非法 语法错误(不能同时是 str 和 bytes)
fb、uf 等 ❌ 非法 不支持

📌 总结表

前缀 全称 类型 主要用途
r raw string str 避免 \ 转义(正则、路径)
f formatted string str 插入变量/表达式(推荐格式化方式)
b bytes literal bytes 处理二进制数据
u unicode literal str Python 2 兼容(Python 3 可省略)

⚠️ 注意:前缀不区分大小写 (如 R"..."、F"..." 也合法),但惯例使用小写。

这些前缀让 Python 能灵活处理文本、二进制、动态内容和特殊格式,是日常开发中的重要工具!

相关推荐
下页、再停留12 小时前
【C#桌面客户端系列学习-8】批量导出数据为csv格式
开发语言·c#·visual studio
王立志_LEO12 小时前
HTTPX 完整用法总结
python
菜鸟~noob23312 小时前
【电子战】 第26篇:大气衰减——氧气与水汽吸收【含matlab代码】
开发语言·matlab
ggb喔12 小时前
52pojie 的图片工具:为什么无损转换后体积涨了 6 倍、照片方向还是歪的
图像处理·python·算法·计算机视觉·图形渲染·媒体
hnxaoli12 小时前
win10小程序(二十三)新建带时间文件夹
python
菜鸟~noob23312 小时前
【电子战】第25篇:自由空间、双射线与菲涅尔区【含matlab代码】
开发语言·算法·matlab
企业数字化笔记12 小时前
AI工具参数很多怎么办?预设、表单校验、危险参数与配置审计
java·spring boot·python·音视频
梅菲塔亚12 小时前
华为云从入门到实战
开发语言·华为云·php
霸道流氓气质12 小时前
幂等性与 Upsert:防止重复操作产生副作用的技术
开发语言·php