有没有在Python“串”和“串”之间有什么区别? [重复](Is there any diff

2019-07-18 07:44发布

这个问题已经在这里有一个答案:

  • 单引号与Python中的[关闭]双引号 19个回答

在PHP中,包含在“双引号”的字符串会被解析为变量来代替,而包含在“单引号”将不是一个字符串。 在Python,这是否也适用?

Answer 1:

无 :

2.4.1。 字符串和文本的字节

......在简单的英语:这两种类型的文字可以匹配单引号(括' )或双引号( " )。它们还可以包含在匹配三个单或双引号组(这些通常被称为三重-quoted字符串)。反斜线( \ )字符用来逃跑,否则有特殊含义的字符,如换行符,反斜杠本身,或引号字符...



Answer 2:

Python是为数不多的(?)语言,其中“和”具有相同的功能之一。对我来说,选择通常取决于里面是什么。如果我要引述其内具有单引号,我将使用双引号的字符串反之亦然,以减少其在字符串中的转义字符。

例子:

"this doesn't require escaping the single quote"
'she said "quoting is easy in python"'

这是记录在Python文档的“字符串文字”页上:

  • http://docs.python.org/2/reference/lexical_analysis.html#string-literals (2.X)
  • http://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals (3.X)


Answer 3:

在其他一些语言中,如果使用单引号元字符不会解释。 采取红宝石这个例子:

irb(main):001:0> puts "string1\nstring2"
string1
string2
=> nil
irb(main):002:0> puts 'string1\nstring2'
string1\nstring2
=> nil

在Python中,如果你希望字符串字面理解,可以使用原始字符串(由“R”字符开头的字符串):

>>> print 'string1\nstring2'
string1
string2
>>> print r'string1\nstring2'
string1\nstring2


Answer 4:

在Python单,双引号的字符串是相同的。 唯一的区别是,单引号字符串可以包含转义双引号字符,反之亦然。 例如:

'a "quoted" word'
"another 'quoted' word"

话又说回来,有三引号字符串,这让双方的报价字符和换行符被转义。

您可以使用名为符和当地人()内置的字符串替换变量:

name = 'John'
lastname = 'Smith'
print 'My name is %(name)s %(lastname)s' % locals()  # prints 'My name is John Smith'


Answer 5:

交互式Python解释器更喜欢单引号:

>>> "text"
'text'

>>> 'text'
'text'

这可能是混乱的初学者,所以我会用单引号坚持(除非你有不同的编码标准)。



Answer 6:

之间“和”串引用的区别只是在风格 - 除了一个消除了逃避其他字符串里面的内容的需求。

样式

PEP8建议一致的规则, PEP257表明,文档字符串使用三重双引号。

在Python中,单引号字符串和双引号字符串是相同的。 这PEP不会使此操作的建议。 选择一个规则,并坚持下去。 当一个字符串包含单个或双引号字符,但是,使用另一种避免在字符串中的反斜杠。 它提高了可读性。

对于三引号字符串,总是使用双引号字符,以便与PEP 257的文档字符串约定一致。

然而,普遍采用的是更喜欢双引号自然语言字符串(包括插值)的做法 - 所以任何事情有可能成为国际化的候选。 而单引号技术字符串:符号,字符,路径,命令行选项,技术正则表达式,...

(例如,制备用于I18N代码时,我快速运行一个半自动REGEX转换双引号字符串用于使用例如gettext



Answer 7:

有3种方法,你可以在python qoute字符串:“串”“串”“”“串串‘’”他们都产生相同的结果。



Answer 8:

在Python中没有什么区别,而且,您可以在生成XML时真正使用你的优势。 XML语法是否正确,需要各地的属性值双引号,并且在许多语言,比如Java,这迫使你创建一个像这样的字符串时逃脱他们:

String HtmlInJava = "<body bgcolor=\"Pink\">"

但是在Python中,您只需使用其他的报价,并确保使用相匹配的结束报价是这样的:

html_in_python = '<body bgcolor="Pink">'

相当不错的吧? 您还可以使用三个双引号来开始和结束多行字符串,与EOL的包括如下:

multiline_python_string = """
This is a multi-line Python string which contains line breaks in the 
resulting string variable, so this string has a '\n' after the word
'resulting' and the first word 'word'."""


Answer 9:

是。 那些认为单引号和双引号在Python一样是完全错误的。

否则,在下面的代码中,双引号字符串不会采取额外的4.5%,再为Python来处理:

import time

time_single = 0
time_double = 0

for i in range(10000000):
    # String Using Single Quotes
    time1 = time.time()
    str_single1 = 'Somewhere over the rainbow dreams come true'
    str_single2 = str_single1
    time2 = time.time()
    time_elapsed = time2 - time1
    time_single += time_elapsed

    # String Using Double Quotes 
    time3 = time.time()
    str_double1 = "Somewhere over the rainbow dreams come true"
    str_double2 = str_double1
    time4 = time.time()
    time_elapsed = time4 - time3
    time_double += time_elapsed

print 'Time using single quotes: ' + str(time_single)
print 'Time using double quotes: ' + str(time_double)

输出:

>python_quotes_test.py
Time using single quotes: 13.9079978466
Time using double quotes: 14.5360121727

所以,如果你想在这里你似乎知道你的东西快速干净体面的代码,实用每当字符串使用单引号。 您还可以通过跳过Shift键消耗更少的能源。



文章来源: Is there any difference between “string” and 'string' in Python? [duplicate]