04.python中单引号和双引号、三重引号的区别

Python 中单引号、双引号、三重引号的区别完全指南

一、它们都是用来写“字符串”的

在 Python 里,字符串就是一段文字。要把文字写进代码,必须用引号包起来,否则 Python 会把它当成变量名或别的语法。

用来包字符串的引号有三种形式:

写法 名称 示例
'...' 单引号 '你好'
"..." 双引号 "你好"
'''...'''"""...""" 三重引号(三单或三双) '''多行'''

下面分别说明各自的特点和区别。


二、单引号 '...'

2.1 基本用法

一对单引号把文字包起来,就得到一个字符串。

s = '你好'
print(s)          # 输出:你好

s = 'Hello'
print(s)           # 输出:Hello

s = '123'          # 这也是字符串,不是数字
print(s, type(s))  # 输出:123 <class 'str'>

2.2 什么时候单引号特别方便?

当字符串里面包含双引号时,用单引号包外面,里面的双引号就不用“转义”,写起来更简单。

# 字符串内容里有双引号 "
s = '他说:"你好!"'
print(s)   # 输出:他说:"你好!"

s = '请选择 "确定" 或 "取消"'
print(s)   # 输出:请选择 "确定" 或 "取消"

如果外面也用双引号,里面的双引号就必须加反斜杠转义(见第五节),比较麻烦。


三、双引号 "..."

3.1 基本用法

一对双引号把文字包起来,同样得到一个字符串。和单引号在功能上没有区别

s = "你好"
print(s)          # 输出:你好

s = "Hello"
print(s)           # 输出:Hello

3.2 什么时候双引号特别方便?

当字符串里面包含单引号(撇号)时,用双引号包外面,里面的单引号就不用转义。

# 字符串内容里有单引号 '
s = "It's a nice day"
print(s)   # 输出:It's a nice day

s = "我's 小明"
print(s)   # 输出:我's 小明

s = "don't"
print(s)   # 输出:don't

如果外面也用单引号,写成 'It's a nice day',Python 会认为字符串在第二个单引号就结束了,后面就会报错。所以这种情况用双引号更省事。


四、单引号和双引号:总结对比

4.1 对 Python 来说,效果一样

对于不包含引号的普通文字,用单引号还是双引号,结果完全一样。

a = '你好'
b = "你好"
print(a == b)   # True,两者相等
print(a)        # 你好
print(b)        # 你好

4.2 区别只在于“方便程度”

字符串里包含 推荐外面用 原因
双引号 " 单引号 ' 里面双引号不用转义
单引号 ' 双引号 " 里面单引号不用转义
两种都有 任选一种,另一种用转义 见下一节

示例:里面既有单引号又有双引号

可以选一种包外面,另一种用反斜杠转义:

# 外面用双引号,里面的双引号要转义
s = "他说:"It's OK.""
print(s)   # 输出:他说:"It's OK."

五、转义:在字符串里写出引号本身

有时必须“外面和里面用同一种引号”,这时就要用 反斜杠 告诉 Python:这个引号是内容的一部分,不是字符串的结束。

5.1 在双引号字符串里写双引号

# 错误:中间的双引号会让 Python 认为字符串结束了
# s = "他说:"你好""   # 语法错误

# 正确:用 "
s = "他说:"你好""
print(s)   # 输出:他说:"你好"

5.2 在单引号字符串里写单引号

# 错误:第二个单引号会提前结束字符串
# s = 'It's OK'   # 语法错误

# 正确:用 '
s = 'It's OK'
print(s)   # 输出:It's OK

5.3 常见转义字符(顺便了解)

在字符串里, 后面跟特定字符有特殊含义:

写法 含义 示例
' 一个单引号 'It's' → It’s
" 一个双引号 " say "Hi" " → say “Hi”
n 换行 "anb" 打印成两行
t 制表符(Tab) "atb" 中间一个 Tab
\ 一个反斜杠 "C:\path" → C:path
print("第一行n第二行")
# 第一行
# 第二行

print("姓名t年龄")
# 姓名    年龄

print("路径:C:\Users\admin")
# 路径:C:Usersadmin

六、三重引号 '''...'''"""..."""

三重引号就是连续三个单引号连续三个双引号。用来包字符串时,有两个主要用途。

6.1 用途一:写多行字符串(换行可以直接写)

单引号和双引号只能写一行。如果字符串要跨多行,可以:

  • 用三重引号把整段包起来,中间直接回车换行;或
  • n 写在单行里(不方便阅读)

示例:多行字符串

# 用三双引号
text = """第一行
第二行
第三行"""
print(text)
# 第一行
# 第二行
# 第三行

# 用三单引号,效果一样
text = '''第一行
第二行
第三行'''
print(text)

多行字符串里可以有单引号和双引号

只要内容里没有连续三个单引号或三个双引号,一般不需要转义:

s = """他说:"It's a good day."
然后笑了。"""
print(s)

6.2 用途二:文档字符串(docstring)

在函数、类或模块的开头写一个用三重引号包起来的字符串,叫 文档字符串,用来说明这段代码是干什么的。工具和帮助系统会读取它。

def greet(name):
    """向 name 打招呼。这是文档字符串。"""
    print("你好,", name)

# 查看文档字符串
print(greet.__doc__)   # 输出:向 name 打招呼。这是文档字符串。

小结:三重引号

  • 三单 '''三双 """ 在当字符串用时没有区别,选一种即可。
  • 都能写多行、都能包含单引号和双引号(除非内容里出现三个连着的同种引号)。
  • 除了多行字符串,还常用于函数/类的说明(docstring)。

七、三重引号 vs 单引号/双引号:对比

特性 单引号 ' / 双引号 " 三重引号 ''' / """
行数 只能一行 可以多行
内容里的引号 同种引号要转义或换另一种 单双引号一般可直接写
常见用途 短字符串、一行文字 多行文字、文档说明

示例对比:同一段多行内容

# 用单引号/双引号:必须写 n
s1 = "第一行n第二行n第三行"
print(s1)

# 用三重引号:直接回车
s2 = """第一行
第二行
第三行"""
print(s2)
# 上面两种打印结果相同

八、实际使用建议(新手可照做)

  1. 普通一行字符串
    用单引号或双引号都行;若内容里有双引号,外面用单引号;若内容里有单引号,外面用双引号,这样不用转义。

  2. 多行字符串
    '''...'''"""...""",中间直接换行即可。

  3. 风格尽量统一
    比如项目里短字符串都用双引号,多行都用三双引号,读起来更一致。

示例:综合运用

# 短字符串:内容有双引号,外面用单引号
msg = '请点击 "确定"'

# 短字符串:内容有单引号,外面用双引号
msg2 = "It's OK"

# 多行:用三引号
help_text = """
使用说明:
1. 输入姓名
2. 输入年龄
3. 按回车
"""
print(help_text)

九、常见错误示例

9.1 引号不匹配

# 错误:只有一个单引号和一个双引号,不配对
# s = '你好"    # 语法错误
# s = "你好'    # 语法错误

# 正确:成对出现
s = '你好'
s = "你好"

9.2 内容里的引号提前“结束”了字符串

# 错误:中间的 " 会让 Python 认为字符串结束
# s = "他说:"你好""   # 语法错误

# 正确:外面用单引号,或里面用 "
s = '他说:"你好"'
# 或
s = "他说:"你好""

9.3 三引号只写了两个

# 错误:只写两个引号不是“三重引号”,会报错或含义不同
# s = ''第一行
# 第二行''   # 错误

# 正确:必须是三个
s = '''第一行
第二行'''

十、小结表

引号类型 写法示例 主要特点与用途
单引号 '文字' 一行;内容里有双引号时用单引号包外面方便
双引号 "文字" 一行;内容里有单引号时用双引号包外面方便
三单引号 '''多行''' 多行;可含单双引号;常作 docstring
三双引号 """多行""" 同上,与三单引号二选一即可
若字符串里要写… 做法
和外面同种的引号 '" 转义
换行 n,或用三重引号直接回车

发表评论