我想要输出

XYZ's "ABC"

我在Python IDLE中try 了以下3条语句.

  • 第1条和第2条语句在'之前输出\.
  • 带打印功能的第三条语句不会在'之前输出\.

作为Python新手,我想理解为什么在第1条和第2条语句中,\'先输出.

>>> "XYZ\'s \"ABC\""
'XYZ\'s "ABC"'

>>> "XYZ's \"ABC\""
'XYZ\'s "ABC"'

>>> print("XYZ\'s \"ABC\"")
XYZ's "ABC"

推荐答案

下面是我在字符串上调用repr()时的观察结果:(在IDLE、REPL等中也是如此)

  • 如果用repr()打印字符串(没有单引号或双引号的普通字符串),它会在其周围添加single引号.(note:在REPL上按enter键时,repr()被调用,而不是print函数调用的__str__.)

  • 如果单词有either '":First,则输出中没有反斜杠.如果单词有',输出将被"包围,如果单词有",输出将被'包围.

  • 如果单词有both '":输出将被single quote包围.'会用反斜杠逃逸,但"不会逃逸.

例如:

def print_it(s):
    print(repr(s))
    print("-----------------------------------")

print_it('Soroush')
print_it("Soroush")

print_it('Soroush"s book')
print_it("Soroush's book")

print_it('Soroush"s book and Soroush\' pen')
print_it("Soroush's book and Soroush\" pen")

输出:

'Soroush'
-----------------------------------
'Soroush'
-----------------------------------
'Soroush"s book'
-----------------------------------
"Soroush's book"
-----------------------------------
'Soroush"s book and Soroush\' pen'
-----------------------------------
'Soroush\'s book and Soroush" pen'
-----------------------------------

因此,获得所需输出的唯一方法是在字符串上调用str().

  • 我知道Soroush"s book在英语中是语法错误的.我只想把它放在一个表达式中

Python相关问答推荐

CustomTKinter-向表单添加额外的输入字段

Python中两个矩阵的自定义Hadamard风格产物

除了Python之外,可以替代bare?

自定义新元未更新参数

将numpy矩阵映射到字符串矩阵

使用regex分析具有特定字符的字符串(如果它们存在)

拆分pandas列并创建包含这些拆分值计数的新列

Pandas 除以一列中出现的每个值

剧作家Python没有得到回应

使用FASTCGI在IIS上运行Django频道

删除所有列值,但判断是否存在任何二元组

无法使用requests或Selenium抓取一个href链接

Python解析整数格式说明符的规则?

Pre—Commit MyPy无法禁用非错误消息

Odoo 16使用NTFS使字段只读

计算天数

如何杀死一个进程,我的Python可执行文件以sudo启动?

手动设置seborn/matplotlib散点图连续变量图例中显示的值

PYTHON、VLC、RTSP.屏幕截图不起作用

Polars map_使用多处理对UDF进行批处理