【问题标题】:python string good practise: ' vs " [duplicate]python字符串良好做法:'与“ [重复]
【发布时间】:2011-12-17 06:17:24
【问题描述】:

可能重复:
Single quotes vs. double quotes in Python

我已经看到,当我必须在 Python 中使用字符串时,以下两种语法都被接受:

mystring1  = "here is my string 1"
mystring2  = 'here is my string 2'

有什么不同吗?

出于任何原因,使用一种解决方案而不是另一种解决方案是否更好?

干杯,

【问题讨论】:

  • 你们觉得最流行的方式是什么?
  • 完成工作的人。 :) 当您需要包含单引号时,请使用双引号,反之亦然。对于日常使用,请使用您喜欢的那个。
  • 我倾向于使用',因为它只需要按一个键而不是两个键
  • 绝对是重复的。拜托,你连搜索功能都没用对吧?

标签: python string syntax


【解决方案1】:

不,没有。当字符串包含单引号时,用双引号将其括起来更容易,反之亦然。除此之外,我的建议是选择一种风格并坚持下去。

另一种有用的字符串字面量是可以跨越多行的三引号字符串:

s = """string literal...
...continues on second line...
...and ends here"""

同样,这取决于你是使用单引号还是双引号。

最后,我想提一下“原始字符串文字”。它们包含在r"..."r'...' 中,并防止转义序列(例如\n)被这样解析。除此之外,原始字符串文字对于指定正则表达式非常方便。

阅读有关 Python 字符串文字的更多信息here

【讨论】:

  • 关于原始字符串的一个困惑是人们有时认为它们是一种特殊的字符串。它们不是,前导的 'r' 只是告诉解释器对后面的文字进行不同类型的处理,将反斜杠视为普通字符。结果是一个普通的旧普通字符串。 “原始”部分是文字,而不是结果。所以我总是使用术语“原始字符串文字”,我认为这将原始性集中在文字上,而不是你得到的字符串。
【解决方案2】:

虽然两者之间确实没有区别,但我在开源社区中遇到了很多以下行为:

  • " 用于应该阅读的文本(电子邮件、反馈、执行等)
  • ' 用于数据文本(关键字典、函数参数等)
  • 三倍 " 用于包含 "' 的任何文档字符串或文本

【讨论】:

  • 我一直使用''' 来输入文档字符串,因为它们只需少按一次键即可输入。我希望这不会让我的项目变得不那么严肃:)
  • 没有理由不这样做。我只是没见过。但它只是 QWERTY 键盘上的击键次数更少,而不是世界上所有的键盘。在我的键盘上,'"' 更易于使用。
  • 大声笑。我刚刚抓取了 Python 源代码。它充满了'''。好的,我想我必须删除该断言:-p
  • +1 表示根据目的地使用'" 的想法,并不是说它真的很有用,但我喜欢这个概念,并且会看到我能用它做什么:- )
【解决方案3】:

没有。只是风格问题。保持一致即可。

【讨论】:

    【解决方案4】:

    我倾向于使用",因为这是大多数其他编程语言使用的。

    所以,习惯,真的。

    【讨论】:

    • 我更喜欢',因为在我的键盘中它不需要Shift键,而"需要。这真的是一个习惯问题!
    【解决方案5】:

    没有区别。

    什么更好是有争议的。我对文本字符串使用"...",对字符使用'...',因为这与其他语言一致,并且在移植到/从不同语言时可以节省一些按键。对于正则表达式和 SQL 查询,我总是使用 r'''...''',因为它们经常包含反斜杠和两种类型的引号。

    【讨论】:

      【解决方案6】:

      Python 就是用最少的代码来获得最大的效果。越短越好。而' 在某种程度上比" 短一个点,这就是我更喜欢它的原因。 :)

      【讨论】:

        【解决方案7】:

        正如大家所指出的,它们在功能上是相同的。但是,PEP 257 (Docstring Conventions) 建议始终在文档字符串周围使用""",以保持一致性。如果你不这样做,没有人可能会对你大喊大叫或看不起你,但它确实存在。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-02-02
          • 1970-01-01
          • 2016-04-29
          • 1970-01-01
          • 2010-09-12
          • 1970-01-01
          • 2012-01-22
          相关资源
          最近更新 更多