为什么反斜杠出现两次?

2024-06-28

当我创建包含反斜杠的字符串时,它们会重复:

>>> my_string = "why\does\it\happen?"
>>> my_string
'why\\does\\it\\happen?'

Why?


你所看到的是表示 of my_string由其创建的__repr__() https://docs.python.org/3/reference/datamodel.html#object.__repr__方法。如果打印它,您可以看到实际上有单个反斜杠,就像您想要的那样:

>>> print(my_string)
why\does\it\happen?

下面的字符串有three其中的字符,不是四个:

>>> 'a\\b'
'a\\b'
>>> len('a\\b')
3

您可以使用以下命令获取字符串(或任何其他对象)的标准表示形式repr() https://docs.python.org/3/library/functions.html#repr内置函数:

>>> print(repr(my_string))
'why\\does\\it\\happen?'

Python 将字符串中的反斜杠表示为\\因为反斜杠是转义字符 - 例如,\n代表换行符,并且\t代表一个选项卡。

这有时会给你带来麻烦:

>>> print("this\text\is\not\what\it\seems")
this    ext\is
ot\what\it\seems

正因为如此,需要有一种方法来告诉Python你really想要两个角色\n而不是换行符,您可以通过使用另一个转义反斜杠本身来实现这一点:

>>> print("this\\text\is\what\you\\need")
this\text\is\what\you\need

当 Python 返回字符串的表示形式时,它会安全地转义所有反斜杠(即使它们不会成为转义序列的一部分),这就是您所看到的。但是,字符串本身仅包含单个反斜杠。

有关 Python 字符串文字的更多信息可以在以下位置找到:字符串和字节文字 https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals在 Python 文档中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么反斜杠出现两次? 的相关文章

随机推荐

  • std::ofstream,写入前检查文件是否存在

    我正在实现文件保存功能Qt使用 C 的应用程序 我正在寻找一种方法来检查所选文件在写入之前是否已存在 以便我可以向用户提示警告 我正在使用一个std ofstream我并不是在寻找Boost解决方案 这是我最喜欢的隐藏功能之一 我随身携带以
  • 在 React 中使用内联样式和纯 CSS 字符串

    我正在ReactJS中重写一个基于AngularJS的现有应用程序 在应用程序中 用户可以提供 CSS 样式字符串来设置某些元素的样式 在 AngularJS 中这没有问题 我只是将 style 属性设置为给定的字符串 在 ReactJS
  • 自动将 c++ dll 包装到 c# 中

    我想在 C 项目中使用 C 库 是否有任何包装工具可以自动导入所有类 SWIG http www swig org 可以帮助创建一个由两部分组成的包装器 一侧为 C 一侧为 C 不过 设置正确的生成文件需要一些工作 另一种需要更多手动编码的
  • 如何使用 SQL 语法更改主键约束?

    我有一个表 其主键约束中缺少一列 我不想通过 SQL Server 对其进行编辑 而是想将其放入脚本中以将其添加为更新脚本的一部分 我可以使用什么语法来执行此操作 我必须删除并重新创建关键约束吗 是的 唯一的方法是使用 Alter 表删除约
  • 如何重置anaconda根环境

    如何重置anaconda的root环境 必须有一个简单的 conda Reset 命令来执行此操作 我不想再次重新安装 anaconda 我有其他不想覆盖的 virtualenv 如果我再次安装 anaconda 就会发生这种情况 See
  • 无法加载资源:加载 .mp3 文件时出错

    我正在使用以下命令向我的应用程序添加声音audioplayers包 但在第一次构建时没有播放声音 加载文件时热重启面团后 我收到此异常 E flutter 32175 ERROR flutter lib ui ui dart state c
  • GCM 注册 ID 已更改

    我开发了一个使用 GCM 技术的应用程序 一切正常 我观察到设备的注册 ID 一段时间后发生了变化 这导致我的应用程序出现问题 因为我的应用程序依赖于注册 ID 那么如何为客户获取固定的Reg ID呢 我读完了这两个原因here http
  • Angular 6 不赞成同时使用 formControlName 和 ngModel

    我有 Angular 6 项目 我一起使用 ngModel 和 formControlName 但角度在下面给了我警告 例如 当我从网格中的按钮打开更新弹出窗口时 我可以轻松地自动绑定更新弹出窗口中的输入 但 Angular 7 表示删除
  • C# 是“??”吗?运算符线程安全吗?

    大家都知道这不是线程安全的 public StringBuilder Builder get if builder null builder new StringBuilder return builder 那这个呢 public Stri
  • 错误:找不到模块:错误:无法解析“@angular/cdk/scrolling”

    我遇到了错误 找不到模块 错误 无法解析 angular cdk scrolling 一旦我在 app module ts 中添加 import TableModule from primeNG 为什么会抛出这个错误 我没有看到 prime
  • 如何在Python多处理中的所有进程之间共享数据?

    我想在给定文章中搜索预定义的关键字列表 如果在文章中找到关键字 则分数加 1 我想使用多重处理 因为预定义的关键字列表非常大 10k 个关键字 文章数量为 100k 我碰到this https stackoverflow com quest
  • 如何构图“也许”镜头?

    如果我有嵌套记录的镜头 其中每个镜头返回一个Maybe 我怎样才能让它们组合起来 这样如果 遍历 中有任何东西返回一个Nothing最终结果是Nothing data Client Client clientProperties Maybe
  • 使用 gson 将 Java 对象转换为 JSON 字符串

    我在这里找到了一些示例 说明如何将 json 转换为 java 对象 但这里我需要将 Java 对象转换为GSON 我有一个Java对象 现在我想将Java对象转换为Gson 我该如何实现这一点 请参考我的代码 Staff obj new
  • Aurora RDS 实例无法停止

    我正在尝试 Amazon Aurora 实例 但看不到停止它的选项 唯一的选项是删除和重新启动 我是不是错过了什么 编辑 2018 09 25 Amazon Aurora 现在支持停止和启动数据库集群 根据本公告 https aws ama
  • javascript 减法(-) 键码

    好的 我需要我的代码来检查减号 减号 是否被按下 如果被按下我想要弹出一个警报框 我都试过了109 and 189关键代码 但我仍然没有得到想要的结果 虽然我按 我没有收到那个警报框 JavaScript字符代码 您在按键事件期间测试的内容
  • 进行 SendInput 时调用全局低级键盘钩子。如何预防?

    我有一个用 c 编写的 win 32 应用程序 它设置低级键盘挂钩 现在我想将输入发送到任何应用程序 例如单词 记事本 我该怎么做呢 我已经足够使用 findwindow sendmessage 了 对于所有这些 我需要了解编辑控件 找到编
  • Python Decimal 模块不适用于 uint64

    我正在尝试将 numpy uint64 由 numpy sum 输出 转换为小数 而不会丢失 Decimal 模块的精度 gt gt gt from decimal import Decimal gt gt gt import numpy
  • 如何在 // 注释中转义反斜杠

    我有一条以反斜杠结尾的评论 就像是 use Clang 警告我 这是多行注释 warning multi line comment Wcomment use 所以我尝试在末尾添加一些空格 但没有帮助 我可以以某种方式逃避反斜杠吗 问题的基础
  • 使用 XQuery 更新自动递增?

    Does XQuery更新支持自增属性 就像中的自增字段一样SQL 我在用着BaseX作为我的数据库 Given Christian Gr n 在 BaseX 邮件列表上的回答 https mailman uni konstanz de p
  • 为什么反斜杠出现两次?

    当我创建包含反斜杠的字符串时 它们会重复 gt gt gt my string why does it happen gt gt gt my string why does it happen Why 你所看到的是表示 of my stri