为什么python中的所有字符串文字都评估为单引号?
'a', "a", """a"""
全部评估为
'a'
在互动的shell中。
答案 0 :(得分:1)
并非所有unicode文字都是使用''
打印的,例如,如果你混合使用这些文字,Python将使用适当的引用来表示它:
>>> "'a'"
"'a'"
选择''
超过""
(不是""" """
,因为那些不太可读)因为没有混合引用的情况只是一个可能很早就做出的决定没有重大原因。
Python总是选择'
而非"
以及"""
时的>>> """'a'"""
"'a'"
:
'a'
并且背后没有“特殊”的推理。
答案 1 :(得分:1)
您必须区分字符串的内容和其表示。
文字"a"
,"""a"""
和t = "a"
都代表相同的字符串。这意味着在分配该字符串后,如:
t = "a"+'b'
Python不再记得该字符串是如何输入的。此外,对于字符串:
'ab'
结果字符串为repr(..)
:根本没有“原始文字”。
现在您在终端中查询变量(或表达式)。终端将在内部调用repr("a")
方法。所以基本上,你写了:
__repr__
现在Python调用>>> "'a'"
"'a'"
方法,该方法检查字符串中是否有单引号。如果不是,则字符串用单引号表示,否则可以用双引号表示。例如:
{{1}}