Answers:
我喜欢在用于插值或自然语言消息的字符串周围使用双引号,对于像符号一样小的字符串使用单引号,但是如果字符串包含引号或我忘记了,则会违反规则。我对文档字符串使用三重双引号,对正则表达式使用原始字符串文字,即使不需要它们也是如此。
例如:
LIGHT_MESSAGES = {
'English': "There are %(number_of_lights)s lights.",
'Pirate': "Arr! Thar be %(number_of_lights)s lights."
}
def lights_message(language, number_of_lights):
"""Return a language-appropriate string reporting the light count."""
return LIGHT_MESSAGES[language] % locals()
def is_pirate(message):
"""Return True if the given message sounds piratical."""
return re.search(r"(?i)(arr|avast|yohoho)!", message) is not None
在https://docs.python.org/2.0/ref/strings.html引用官方文档:
用简单的英语:字符串文字可以用匹配的单引号(')或双引号(“)括起来。
因此没有区别。取而代之的是,人们会告诉您选择与上下文匹配并且一致的样式。我会同意-补充一点,试图为此类事情提出“惯例”是没有意义的,因为这样只会使任何新来者感到困惑。
我以前喜欢'
,尤其是对'''docstrings'''
,因为我觉得"""this creates some fluff"""
。另外,'
无需Shift我的瑞士德语键盘上的键即可键入。
从那以后,我改变为使用三引号"""docstrings"""
,以符合PEP 257。
"
仅在PC QWERTY键盘上需要一个Shift键。在我的键盘上,"
实际上更容易键入。
我与Will在一起:
我会坚持下去,即使这意味着很多逃避。
从引号引起来的单引号标识符中,我获得了最大的价值。其余的做法只是为了给那些单引号标识符留出一定的空间。
"If you're going to use apostrophes,
^
you'll definitely want to use double quotes".
^
由于这个简单的原因,我总是在外面使用双引号。总是
说到绒毛,如果您将不得不使用转义字符来表示撇号,那么用'简化字符串文字有什么好处?它会冒犯编码员阅读小说吗?我无法想象高中英语课对你有多痛苦!
Python使用如下引号:
mystringliteral1="this is a string with 'quotes'"
mystringliteral2='this is a string with "quotes"'
mystringliteral3="""this is a string with "quotes" and more 'quotes'"""
mystringliteral4='''this is a string with 'quotes' and more "quotes"'''
mystringliteral5='this is a string with \"quotes\"'
mystringliteral6='this is a string with \042quotes\042'
mystringliteral6='this is a string with \047quotes\047'
print mystringliteral1
print mystringliteral2
print mystringliteral3
print mystringliteral4
print mystringliteral5
print mystringliteral6
给出以下输出:
this is a string with 'quotes'
this is a string with "quotes"
this is a string with "quotes" and more 'quotes'
this is a string with 'quotes' and more "quotes"
this is a string with "quotes"
this is a string with 'quotes'
"""This is a string with "quotes""""
引发了SyntaxError。如何解决这种情况?(与相同'''This is a string with 'quotes''''
)
'''This is a string with "quotes"'''
。
我通常使用双引号,但出于某种原因而不是使用双引号-可能只是出于Java的习惯。
我猜您也更希望内联文字字符串中使用撇号,而不是双引号。
在Perl中,当您有不需要插入变量或\ n,\ t,\ r等转义字符的字符串时,您想使用单引号。
PHP与Perl的区别是相同的:单引号中的内容将不会被解释(甚至不会转换\ n),而双引号中可能包含变量以显示其值。
恐怕Python没有。从技术上看,在Python中没有$令牌(或类似符号)可将名称/文本与变量分开。毕竟,这两个功能使Python更具可读性,减少了混乱。单引号和双引号可以在Python中互换使用。
r
在字符串文字前添加原始字符串来制成原始字符串。因此,print 'a\nb'
将打印出两行,但print r'a\nb'
将打印出一行。
我只是用当时我喜欢的任何东西;能够一时之间在两者之间切换很方便!
当然,引用报价字符时,毕竟在两者之间切换可能不是那么古怪……
您的团队的品味或项目的编码准则。
例如,如果您处于多语言环境中,则可能希望鼓励对其他语言使用的字符串使用相同类型的引号。另外,我个人最喜欢“
'
= "
/
= \
=\\
例如:
f = open('c:\word.txt', 'r')
f = open("c:\word.txt", "r")
f = open("c:/word.txt", "r")
f = open("c:\\\word.txt", "r")
结果是一样的
= >>不,他们不一样。单个反斜杠将转义字符。在该示例中,您只是碰巧了运气,因为\k
和\w
不是有效的转义字符,例如\t
or \n
或\\
or\"
如果要使用单个反斜杠(并且将反斜杠解释为反斜杠),则需要使用“原始”字符串。您可以通过r
在字符串前面加上“ ”来实现
im_raw = r'c:\temp.txt'
non_raw = 'c:\\temp.txt'
another_way = 'c:/temp.txt'
就Windows中的路径而言,正斜杠的解释方式相同。显然,字符串本身是不同的。但是,我不能保证在外部设备上会以这种方式处理它们。
os.path.join()