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 能灵活处理文本、二进制、动态内容和特殊格式,是日常开发中的重要工具!

相关推荐
Sirius.z7 小时前
第R6周:LSTM实现糖尿病探索与预测
python
名字还没想好☜7 小时前
Python f-string 进阶:数字格式化、对齐填充、调试 = 号与嵌套表达式
开发语言·数据库·python·字符串格式化·f-string
·薯条大王8 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
Dxy12393102169 小时前
Python 如何使用 MySQL 的事务
python·mysql
一壶浊酒..11 小时前
Scrape Webpack练习
开发语言·javascript·webpack
命运之光11 小时前
【C语言完整代码】就诊信息管理系统
java·c语言·开发语言
命运之光12 小时前
【C语言完整代码】图书管理系统:图书馆场景下的增删改查实战
c语言·开发语言
猿长大人12 小时前
C# | Serilog 新手入门
开发语言·c#·.net·log
今儿敲了吗13 小时前
Python ——第三方包
笔记·python
麒麟水手13 小时前
国产银河麒麟系统开发实录:跑通Streamlit,我踩过的6个坑
python