Python中的“string”和“string”有什么区别吗?

在PHP中,用“双引号”括起来的string将被parsing为要replace的variables,而用“单引号”括起来的string将不会被parsing。 在Python中,这是否也适用?

否 :

2.4.1。 string和字节文字

…简单的英语:这两种types的文字都可以用单引号( ' )或双引号( " )括起来,也可以用三个单引号或双引号(一般被称为三元组反斜杠( \ )字符用于转义否则具有特殊含义的字符,如换行符,反斜杠本身或引号字符…

Python是“and”具有相同function的less数(?)语言之一,我的select通常取决于内部的东西,如果我要引用一个单引号的string,我会用双引号反之亦然,以减less不必要的string中的字符。

例子:

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

这是在python文档的“string文字”页面上logging的:

在其他一些语言中,如果使用单引号,则不会解释元字符。 以Ruby为例:

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

在Python中,如果你想从字面上得到string,你可以使用原始string(一个以“r”字符开头的string):

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

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

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

再次,有三重引号的string,它允许引号和换行符都被转义。

你可以使用命名的说明符和locals()内置的stringreplacevariables:

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

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

 >>> "text" 'text' >>> 'text' 'text' 

这可能会让初学者感到困惑,所以我会坚持使用单引号(除非你有不同的编码标准)。

“和”string引用之间的区别只是风格 – 除了在string内容中删除其他string的需要。

样式

PEP8build议采用一致的规则, PEP257build议docstrings使用三重双引号。

在Python中,单引号string和双引号string是相同的。 这个PEP不会为此提出build议。 select一个规则,坚持下去。 但是,当string包含单引号或双引号字符时,请使用另一个避免string中的反斜杠。 它提高了可读性。

对于三引号string,总是使用双引号字符来与PEP 257中的文档string约定保持一致。

然而,广泛使用的是习惯使用自然语言string(包括插值)的双引号 – 因此可能是I18N的潜在候选者。 和单引号的技术string:符号,字符,path,命令行选项,技术REGEXes,…

(例如,当为I18N准备代码时,我运行一个半自动的REGEX快速转换双引号string,例如使用gettext

有三种方法可以在python中inputstring:“string”“string”“”“string string”“”它们都产生相同的结果。

Python中没有区别,在生成XML时可以真正使用它。 正确的XML语法需要使用属性值的双引号,并且在许多语言中(如Java),在创build如下string时,这会强制您将其转义:

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

但在Python中,只需使用其他引用,并确保使用匹配的结束引号,如下所示:

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

漂亮很好吧? 您也可以使用三个双引号来开始和结束多行string,包括这样的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中完全相同的是完全错误的。

否则,在下面的代码中,双引号的string将不会再花费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 

所以,如果你想快速清理可敬的代码,你似乎知道你的东西,每当实际使用单引号string。 通过跳过换档键,您也将消耗更less的能量。