这个问题已经在这里有一个答案:
- 单引号与Python中的[关闭]双引号 19个回答
在PHP中,包含在“双引号”的字符串会被解析为变量来代替,而包含在“单引号”将不是一个字符串。 在Python,这是否也适用?
这个问题已经在这里有一个答案:
在PHP中,包含在“双引号”的字符串会被解析为变量来代替,而包含在“单引号”将不是一个字符串。 在Python,这是否也适用?
无 :
2.4.1。 字符串和文本的字节
......在简单的英语:这两种类型的文字可以匹配单引号(括
'
)或双引号("
)。它们还可以包含在匹配三个单或双引号组(这些通常被称为三重-quoted字符串)。反斜线(\
)字符用来逃跑,否则有特殊含义的字符,如换行符,反斜杠本身,或引号字符...
Python是为数不多的(?)语言,其中“和”具有相同的功能之一。对我来说,选择通常取决于里面是什么。如果我要引述其内具有单引号,我将使用双引号的字符串反之亦然,以减少其在字符串中的转义字符。
例子:
"this doesn't require escaping the single quote"
'she said "quoting is easy in python"'
这是记录在Python文档的“字符串文字”页上:
在其他一些语言中,如果使用单引号元字符不会解释。 采取红宝石这个例子:
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
在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'
交互式Python解释器更喜欢单引号:
>>> "text"
'text'
>>> 'text'
'text'
这可能是混乱的初学者,所以我会用单引号坚持(除非你有不同的编码标准)。
之间“和”串引用的区别只是在风格 - 除了一个消除了逃避其他字符串里面的内容的需求。
PEP8建议一致的规则, PEP257表明,文档字符串使用三重双引号。
在Python中,单引号字符串和双引号字符串是相同的。 这PEP不会使此操作的建议。 选择一个规则,并坚持下去。 当一个字符串包含单个或双引号字符,但是,使用另一种避免在字符串中的反斜杠。 它提高了可读性。
对于三引号字符串,总是使用双引号字符,以便与PEP 257的文档字符串约定一致。
然而,普遍采用的是更喜欢双引号自然语言字符串(包括插值)的做法 - 所以任何事情有可能成为国际化的候选。 而单引号技术字符串:符号,字符,路径,命令行选项,技术正则表达式,...
(例如,制备用于I18N代码时,我快速运行一个半自动REGEX转换双引号字符串用于使用例如gettext
)
有3种方法,你可以在python qoute字符串:“串”“串”“”“串串‘’”他们都产生相同的结果。
在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'."""
是。 那些认为单引号和双引号在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键消耗更少的能源。