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 中和 "你好" 没区别

🧩 组合规则

组合 是否合法 说明
frrf ✅ 合法 原始格式化字符串(如 rf'\n{var}'
rbbr ❌ 非法 语法错误(不能同时是 str 和 bytes)
fbuf ❌ 非法 不支持

📌 总结表

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

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

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

相关推荐
Warson_L5 小时前
Python `Annotated` 与 LangGraph Reducer 学习笔记
python
韩师傅5 小时前
海天线算法的前世今生
python·计算机视觉
韩师傅6 小时前
当你的甲方设备过烂,要如何快速出效果?
python·计算机视觉
Warson_L6 小时前
LangGraph的MessageState and HumanMessage
python
韩师傅6 小时前
当你的甲方吐槽天空不够蓝,你应该如何应对
python·计算机视觉
Warson_L7 小时前
python的类&继承
python
Warson_L7 小时前
类型标注/type annotation
python
ThreeS9 小时前
手搓MiniVLA全实战教程-一步一步用pytorch解释原理与思路
人工智能·python
金銀銅鐵11 小时前
[Python] 模 n 乘法的逆元计算器
python·数学·游戏