尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

python中类似fhello, rhello 的用法还有哪些?

python中类似fhello, rhello 的用法还有哪些?
📅 发布时间:2026/6/20 5:25:21

在Python中,字符串字面量可以通过前缀修饰以改变其处理方式或语义。除了常见的f"hello"(格式化字符串)和r"hello"(原始字符串),还有以下几种核心用法:

1. b"hello":字节字符串(Bytes Literal)

  • 表示一个字节序列(类型为bytes),而非Unicode字符串。
  • 示例:
    data = b"hello"  # 类型为bytes,存储的是二进制数据
    print(type(data))  # <class 'bytes'>
    
  • 常用于处理二进制数据(如文件、网络传输)。

2. u"hello":Unicode字符串(历史遗留,Python 3中已默认)

  • 在Python 2中用于显式声明Unicode字符串(与普通字符串str区分),但在Python 3中所有字符串默认均为Unicode,因此u前缀不再有实际效果,仅保留兼容性。
  • 示例:
    s = u"hello"  # Python 3中等价于"hello"
    print(type(s))  # <class 'str'>
    

3. 三引号字符串("""或'''):多行字符串

  • 使用三引号(单引号或双引号)可定义跨多行的字符串,自动包含换行符和缩进。
  • 示例:
    multi_line = """
    Line 1
    Line 2Indented Line
    """
    print(multi_line)
    # 输出:
    # Line 1
    # Line 2
    #   Indented Line
    

4. 组合前缀:fr"hello"、rb"hello"等

  • 多个前缀可以组合使用(顺序通常为r/f在前,b在后),例如:
    • fr"name: {name}":原始格式化字符串(先处理原始字符串的转义,再格式化)。
    • rb"data":原始字节字符串(字节序列中的\n等不会被转义)。
  • 示例:
    name = "John"
    s = fr"Path: C:\Users\{name}"  # 原始字符串 + 格式化,\U不会被转义为Unicode转义
    print(s)  # 输出:Path: C:\Users\John
    

5. 隐式转义处理:普通字符串的默认行为

  • 无前缀的普通字符串(如"hello")会正常处理转义字符(如\n换行、\t制表符)。
  • 示例:
    s = "Hello\nWorld"  # 包含换行符
    print(s)
    # 输出:
    # Hello
    # World
    

关键区别总结

前缀 类型 特点
f str 格式化字符串,支持{}内嵌入变量或表达式(如f"{name} is {age}")。
r str 原始字符串,反斜杠\视为普通字符(如r"\n"是两个字符)。
b bytes 字节字符串,存储二进制数据(如b"hello")。
u str Python 3中无实际效果(兼容Python 2的Unicode标识)。
"""/''' str 多行字符串,保留换行和缩进。

注意事项

  • 组合前缀顺序:fr和rf是合法的,但rf在逻辑上等价于fr(先处理原始字符串,再格式化)。
  • 字节字符串的转义:在b字符串中,\n等转义字符仍会被转义,但\xHH(十六进制)是有效的(如b"\x48"表示H)。
  • 原始字符串的限制:原始字符串不能以单个反斜杠结尾(如r"\"会报错),因为Python无法确定是否需要转义。

通过这些前缀,Python提供了灵活处理不同场景下字符串需求的能力,从格式化输出到二进制数据处理,覆盖了广泛的使用场景。

相关新闻

  • 凸优化理论(一)
  • 2025年十大可靠水质分析仪品牌推荐,专业虹润水质分析仪
  • 医疗AI助手获2亿美元融资,估值达60亿

最新新闻

  • 从74LS到74HC:经典逻辑器件系列演进与应用选型指南
  • ExtCore框架完全指南:打造模块化ASP.NET Core应用的终极方案
  • CANN/ge MetaContext类API文档
  • cli43/cli与主流数据平台集成指南:BigQuery、Snowflake、Spark完美对接终极教程 [特殊字符]
  • Ascend大模型预训练实战:硬件适配、数据对齐与梯度防控
  • Redis Memory Analyzer与Python集成:API使用详解

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号