python中双引号和单引号的区别是什么

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'

三重引号也遵循同样规则

'''...''' 和 """...""" 都支持多行字符串,区别也仅在于内外引号匹配:

  • '''He said: "Hello"'''"""It's fine""" 都合法
  • 文档字符串(docstring)习惯用三重双引号,属社区约定,非语法要求

其他注意事项

PEP 8(Python官方风格指南)不强制单双引号偏好,但建议项目内保持一致。部分团队统一用单引号,也有团队倾向双引号(更接近JSON/JS习惯)。

字符串拼接、f-string、格式化中,引号类型也不影响行为:f"Name: {'Alice'}"f'Age: {25}' 都正确。

基本上就这些 —— 不复杂但容易忽略的是:别纠结“哪个更好”,而要关注“哪种写起来更顺、更少转义”。