在字符串中打印单引号

Printing Single Quote inside the string

我要输出

XYZ's "ABC"

我在 Python IDLE 中尝试了以下 3 个语句。

作为Python的新手,我想了解为什么在第一个和第二个语句中'之前输出\

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

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

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

不确定要打印什么。 你想让它输出 XYZ\'s \"ABC\" 还是 XYZ's "ABC"?

\ 转义下一个特殊字符,如引号,所以如果你想打印一个 \ 代码需要有两个 \.

string = "Im \" 
print(string)

输出:Im \

如果你想打印引号,你需要单引号:

string = 'theres a "lot of "" in" my "" script'
print(string)

输出:theres a "lot of "" in" my "" script

单引号使您可以在字符串中包含双引号。

以下是我在字符串上调用 repr() 时的观察结果:(在 IDLE、REPL 等中相同)

  • 如果您使用 repr() 打印一个字符串(没有单引号或双引号的普通字符串),它会在其周围添加一个 单引号 引号。 (注意:当您在 REPL 上按回车键时,repr() 被调用,而不是 print 函数调用的 __str__。)

  • 如果单词有或者'或者":首先,输出中没有反斜杠。如果单词有 ' 输出将被 " 包围,如果单词有 ".

    则输出将被包围 '
  • 如果单词同时具有'":输出将被single包围引用' 会用反斜杠转义,但 " 不会转义。

示例:

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 在英语中语法不正确。我只想把它放在表达式中。