Python中单双引号功能完全等价,选择取决于内部引号是否需转义以提升可读性;三重引号同理,文档字符串惯用三重双引号属约定非强制;PEP 8建议项目内保持一致。

Python中双引号("")和单引号('')在功能上完全等价,没有本质区别,都可以用来定义字符串。
字符串定义完全互换
Python解释器对两者一视同仁,以下写法效果完全相同:
-
'hello'和"hello" -
'He said: "Hi!"'(外单内双,避免转义) -
"It's raining"(外双内单,同样免转义)
选择主要看内部引号是否需要转义
当字符串里本身包含引号时,用另一种引号包裹可省去反斜杠,代码更清晰:
- 想写
She said "Yes"→ 推荐用'She said "Yes"' - 想写
It's OK→ 推荐用"It's OK" - 如果混用且必须用同种引号,才需转义:
"She said \"Yes\""或'It\'s OK'
三重引号也遵循同样规则
'''...''' 和 """...""" 都支持多行字符串,区别也仅在于内外引号匹配:
立即学习“Python免费学习笔记(深入)”;
本文档主要讲述的是Ruby on Rails字符串处理;在Ruby中创建一个字符串有多种方式。可以有两种方式表示一个字符串:用一对单引号包围字符('str')或用一对双引号包围字符("str") 这两种形式的区别在于对于包围的字符串的处理,用双引号构造的字符串能处理更多的转移字符。 希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
-
'''He said: "Hello"'''和"""It's fine"""都合法 - 文档字符串(docstring)习惯用三重双引号,属社区约定,非语法要求
其他注意事项
PEP 8(Python官方风格指南)不强制单双引号偏好,但建议项目内保持一致。部分团队统一用单引号,也有团队倾向双引号(更接近JSON/JS习惯)。
字符串拼接、f-string、格式化中,引号类型也不影响行为:f"Name: {'Alice'}" 和 f'Age: {25}' 都正确。
基本上就这些 —— 不复杂但容易忽略的是:别纠结“哪个更好”,而要关注“哪种写起来更顺、更少转义”。










