一、它们都是用来写“字符串”的
在 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 | 换行 | "a\nb" 打印成两行 |
\t | 制表符(tab) | "a\tb" 中间一个 tab |
\\ | 一个反斜杠 | "c:\\path" → c:\path |
print("第一行\n第二行")
# 第一行
# 第二行
print("姓名\t年龄")
# 姓名 年龄
print("路径:c:\\users\\admin")
# 路径:c:\users\admin
六、三重引号'''...'''和"""..."""
三重引号就是连续三个单引号或连续三个双引号。用来包字符串时,有两个主要用途。
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) # 上面两种打印结果相同
八、实际使用建议(新手可照做)
普通一行字符串
用单引号或双引号都行;若内容里有双引号,外面用单引号;若内容里有单引号,外面用双引号,这样不用转义。多行字符串
用'''...'''或"""...""",中间直接换行即可。风格尽量统一
比如项目里短字符串都用双引号,多行都用三双引号,读起来更一致。
示例:综合运用
# 短字符串:内容有双引号,外面用单引号 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,或用三重引号直接回车 |
到此这篇关于python中单引号、双引号、三重引号的用法、区别及常见问题的文章就介绍到这了,更多相关python单引号、双引号、三重引号内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论