处理Python中单引号、双引号、三重引号的用法、区别及常见问题详细说明这类问题时,先确认目标场景,再按步骤核对配置或玩法细节。
在 Python 里,字符串就是一段文字。要把文字写进代码,必须用引号包起来,否则 Python 会把它当成变量名或别的语法。

用来包字符串的引号有三种形式:
| 写法 | 名称 | 示例 |
|---|---|---|
'...' | 单引号 | '你好' |
"..." | 双引号 | "你好" |
'''...''' 或 """...""" | 三重引号(三单或三双) | '''多行''' |
下面分别说明各自的特点和区别。
用一对单引号把文字包起来,就得到一个字符串。
s = '你好'print(s) # 输出:你好s = 'Hello'print(s) # 输出:Hellos = '123' # 这也是字符串,不是数字print(s, type(s)) # 输出:123 <class 'str'>
当字符串里面包含双引号时,用单引号包外面,里面的双引号就不用“转义”,写起来更简单。
# 字符串内容里有双引号 "s = '他说:"你好!"'print(s) # 输出:他说:"你好!"s = '请选择 "确定" 或 "取消"'print(s) # 输出:请选择 "确定" 或 "取消"
如果外面也用双引号,里面的双引号就必须加反斜杠转义(见第五节),比较麻烦。
用一对双引号把文字包起来,同样得到一个字符串。和单引号在功能上没有区别。
s = "你好"print(s) # 输出:你好s = "Hello"print(s) # 输出:Hello
当字符串里面包含单引号(撇号)时,用双引号包外面,里面的单引号就不用转义。
# 字符串内容里有单引号 's = "It's a nice day"print(s) # 输出:It's a nice days = "我's 小明"print(s) # 输出:我's 小明s = "don't"print(s) # 输出:don't
如果外面也用单引号,写成 'It's a nice day',Python 会认为字符串在第二个单引号就结束了,后面就会报错。所以这种情况用双引号更省事。
对于不包含引号的普通文字,用单引号还是双引号,结果完全一样。
a = '你好'b = "你好"print(a == b) # True,两者相等print(a) # 你好print(b) # 你好
| 字符串里包含 | 推荐外面用 | 原因 |
|---|---|---|
双引号 " | 单引号 ' | 里面双引号不用转义 |
单引号 ' | 双引号 " | 里面单引号不用转义 |
| 两种都有 | 任选一种,另一种用转义 | 见下一节 |
示例:里面既有单引号又有双引号
可以选一种包外面,另一种用反斜杠转义:
# 外面用双引号,里面的双引号要转义s = "他说:"It's OK.""print(s) # 输出:他说:"It's OK."
有时必须“外面和里面用同一种引号”,这时就要用 反斜杠 告诉 Python:这个引号是内容的一部分,不是字符串的结束。
# 错误:中间的双引号会让 Python 认为字符串结束了# s = "他说:"你好"" # 语法错误# 正确:用 "s = "他说:"你好""print(s) # 输出:他说:"你好"
# 错误:第二个单引号会提前结束字符串# s = 'It's OK' # 语法错误# 正确:用 's = 'It's OK'print(s) # 输出:It's OK
在字符串里, 后面跟特定字符有特殊含义:
| 写法 | 含义 | 示例 |
|---|---|---|
' | 一个单引号 | 'It's' → It’s |
" | 一个双引号 | " say "Hi" " → say “Hi” |
n | 换行 | "anb" 打印成两行 |
t | 制表符(Tab) | "atb" 中间一个 Tab |
| 一个反斜杠 | "C:path" → C:path |
print("第一行n第二行")# 第一行# 第二行print("姓名t年龄")# 姓名 年龄print("路径:C:Usersadmin")# 路径:C:Usersadmin三重引号就是连续三个单引号或连续三个双引号。用来包字符串时,有两个主要用途。
单引号和双引号只能写一行。如果字符串要跨多行,可以:
n 写在单行里(不方便阅读)示例:多行字符串
# 用三双引号text = """第一行第二行第三行"""print(text)# 第一行# 第二行# 第三行# 用三单引号,效果一样text = '''第一行第二行第三行'''print(text)
多行字符串里可以有单引号和双引号
只要内容里没有连续三个单引号或三个双引号,一般不需要转义:
s = """他说:"It's a good day."然后笑了。"""print(s)
在函数、类或模块的开头写一个用三重引号包起来的字符串,叫 文档字符串,用来说明这段代码是干什么的。工具和帮助系统会读取它。
def greet(name): """向 name 打招呼。这是文档字符串。""" print("你好,", name)# 查看文档字符串print(greet.__doc__) # 输出:向 name 打招呼。这是文档字符串。小结:三重引号
''' 和 三双 """ 在当字符串用时没有区别,选一种即可。| 特性 | 单引号 ' / 双引号 " | 三重引号 ''' / """ |
|---|---|---|
| 行数 | 只能一行 | 可以多行 |
| 内容里的引号 | 同种引号要转义或换另一种 | 单双引号一般可直接写 |
| 常见用途 | 短字符串、一行文字 | 多行文字、文档说明 |
示例对比:同一段多行内容
# 用单引号/双引号:必须写 ns1 = "第一行n第二行n第三行"print(s1)# 用三重引号:直接回车s2 = """第一行第二行第三行"""print(s2)# 上面两种打印结果相同
普通一行字符串
用单引号或双引号都行;若内容里有双引号,外面用单引号;若内容里有单引号,外面用双引号,这样不用转义。
多行字符串
用 '''...''' 或 """...""",中间直接换行即可。
风格尽量统一
比如项目里短字符串都用双引号,多行都用三双引号,读起来更一致。
示例:综合运用
# 短字符串:内容有双引号,外面用单引号msg = '请点击 "确定"'# 短字符串:内容有单引号,外面用双引号msg2 = "It's OK"# 多行:用三引号help_text = """使用说明:1. 输入姓名2. 输入年龄3. 按回车"""print(help_text)
# 错误:只有一个单引号和一个双引号,不配对# s = '你好" # 语法错误# s = "你好' # 语法错误# 正确:成对出现s = '你好's = "你好"
# 错误:中间的 " 会让 Python 认为字符串结束# s = "他说:"你好"" # 语法错误# 正确:外面用单引号,或里面用 "s = '他说:"你好"'# 或s = "他说:"你好""
# 错误:只写两个引号不是“三重引号”,会报错或含义不同# s = ''第一行# 第二行'' # 错误# 正确:必须是三个s = '''第一行第二行'''
| 引号类型 | 写法示例 | 主要特点与用途 |
|---|---|---|
| 单引号 | '文字' | 一行;内容里有双引号时用单引号包外面方便 |
| 双引号 | "文字" | 一行;内容里有单引号时用双引号包外面方便 |
| 三单引号 | '''多行''' | 多行;可含单双引号;常作 docstring |
| 三双引号 | """多行""" | 同上,与三单引号二选一即可 |
| 若字符串里要写… | 做法 |
|---|---|
| 和外面同种的引号 | 用 ' 或 " 转义 |
| 换行 | 用 n,或用三重引号直接回车 |