You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在字符串中表示包含(")的内容?已尝试多种方法未解决

解决Python中构造包含\"的字符串问题

我明白你现在的困惑——试了好几种写法,都没得到想要的'xpto\"xpto'效果,其实核心是你混淆了字符串的实际内容Python对字符串的repr表示,我来给你理清楚:

先搞懂两个关键概念

  • 当你在Python交互式环境里直接输入变量名,得到的是字符串的repr()结果:这是Python用来“展示”字符串的方式,会把特殊字符用转义符表示(比如用\\表示实际的\),方便你直接复制作为代码里的字面量。
  • 当你用print()输出字符串时,得到的才是字符串的实际内容,也就是你最终想要的显示效果。

你的目标解决方案

如果你想要的是实际内容为xpto\"xpto(也就是print()后输出这个结果),那么有两种简单可靠的写法:

方法1:使用原始字符串(Raw String)

原始字符串会忽略转义符的作用,里面的\会被当作普通字符处理,直接写你想要的内容即可:

data = r'xpto\"xpto'
  • 验证:
    >>> data = r'xpto\"xpto'
    >>> data  # 这是repr结果,显示为转义后的形式
    'xpto\\"xpto'
    >>> print(data)  # 这是实际内容,正是你要的
    xpto\"xpto
    

方法2:使用普通字符串,手动转义反斜杠

在普通字符串里,要表示一个实际的\,必须写两个\\(因为单个\是转义符);而"用单引号包裹时不需要转义,所以要构造xpto\"xpto的实际内容,需要写:

data = 'xpto\\\\\"xpto'
  • 验证:
    >>> data = 'xpto\\\\\"xpto'
    >>> data
    'xpto\\\\\"xpto'
    >>> print(data)
    xpto\"xpto
    

为什么你之前的尝试看起来不对?

你试的data= r'xpto\"xpto'其实已经是正确的写法了!只是你看到的'xpto\\"xpto'是Python的repr输出,不是实际内容,用print()就能得到你想要的结果啦。

内容的提问来源于stack exchange,提问作者rnnhm

火山引擎 最新活动