字符串文字和字符串值之间有什么区别?
What is the difference between string literals and string values?
看到这个。
I think your confusion is that you're mixing up the concept of string literals in source code with actual string values.
字符串文字和字符串值有什么区别?我没看懂。
字符串文字是您可以在程序源代码中编写的一段文本,以引号开头和结尾,告诉 Python 创建具有特定内容的字符串。看起来像
'asdf'
或
'''
multiline
content
'''
或
'the thing at the end of this one is a line break\n'
在字符串文字(原始字符串文字除外)中,字符串文字中称为 转义序列 的特殊字符序列将替换为实际字符串中的不同字符。例如,字符串文字中的转义序列 \n
被替换为实际字符串中的换行符。转义序列以反斜杠开头。
字符串是 Python 表示文本值的对象。它可以从字符串文字构建,也可以从文件中读取,也可以来自许多其他来源。
字符串中的反斜杠没有特殊含义,大多数可能的字符串来源中的反斜杠也没有特殊含义。例如,如果您有一个包含反斜杠的文件,如下所示:
asdf\n
你也是
with open('that_file.txt') as f:
text = f.read()
文件中的\n
不会换行。反斜杠在字符串文字中是特殊的,但在大多数其他上下文中不是。
当您通过调用 repr
或交互式显示字符串来请求字符串的 repr
表示形式时:
>>> some_string = "asdf"
>>> some_string
'asdf'
Python 将构建一个新字符串,其内容是将计算为原始字符串的字符串文字。在此示例中,some_string
中没有 '
或 "
字符。字符串的内容是asdf
四个字符,print
字符串显示的字符:
>>> print(some_string)
asdf
但是,repr
表示中有 '
个字符,因为 'asdf'
是一个字符串文字,其计算结果为字符串。请注意,'asdf'
与我们最初使用的 "asdf"
不是同一个字符串文字 - 许多不同的字符串文字可以评估为相等的字符串。
看到这个
I think your confusion is that you're mixing up the concept of string literals in source code with actual string values.
字符串文字和字符串值有什么区别?我没看懂。
字符串文字是您可以在程序源代码中编写的一段文本,以引号开头和结尾,告诉 Python 创建具有特定内容的字符串。看起来像
'asdf'
或
'''
multiline
content
'''
或
'the thing at the end of this one is a line break\n'
在字符串文字(原始字符串文字除外)中,字符串文字中称为 转义序列 的特殊字符序列将替换为实际字符串中的不同字符。例如,字符串文字中的转义序列 \n
被替换为实际字符串中的换行符。转义序列以反斜杠开头。
字符串是 Python 表示文本值的对象。它可以从字符串文字构建,也可以从文件中读取,也可以来自许多其他来源。
字符串中的反斜杠没有特殊含义,大多数可能的字符串来源中的反斜杠也没有特殊含义。例如,如果您有一个包含反斜杠的文件,如下所示:
asdf\n
你也是
with open('that_file.txt') as f:
text = f.read()
文件中的\n
不会换行。反斜杠在字符串文字中是特殊的,但在大多数其他上下文中不是。
当您通过调用 repr
或交互式显示字符串来请求字符串的 repr
表示形式时:
>>> some_string = "asdf"
>>> some_string
'asdf'
Python 将构建一个新字符串,其内容是将计算为原始字符串的字符串文字。在此示例中,some_string
中没有 '
或 "
字符。字符串的内容是asdf
四个字符,print
字符串显示的字符:
>>> print(some_string)
asdf
但是,repr
表示中有 '
个字符,因为 'asdf'
是一个字符串文字,其计算结果为字符串。请注意,'asdf'
与我们最初使用的 "asdf"
不是同一个字符串文字 - 许多不同的字符串文字可以评估为相等的字符串。