在字符串中打印单引号
Printing Single Quote inside the string
我要输出
XYZ's "ABC"
我在 Python IDLE 中尝试了以下 3 个语句。
- 第一个和第二个语句在
'
. 之前输出一个 \
- 带打印功能的第 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
在英语中语法不正确。我只想把它放在表达式中。
我要输出
XYZ's "ABC"
我在 Python IDLE 中尝试了以下 3 个语句。
- 第一个和第二个语句在
'
. 之前输出一个 - 带打印功能的第 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
在英语中语法不正确。我只想把它放在表达式中。