Согласно документации, они практически взаимозаменяемы. Есть ли стилистическая причина использовать один из них вместо другого?
Мне нравится использовать двойные кавычки вокруг строки, которые используются для интерполяции или естественно-языковых сообщений, и одинарные кавычки для мелкий символ-как струны, но нарушу правила, если строки содержат цитаты, или если я забуду. Я использую тройные двойные кавычки для строки документации и сырые строковые литералы регулярных выражений, даже если они арен'т нужна.
Например:
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:
В простом английском языке: строковые литералы могут быть заключены в соответствующие одиночные кавычки (') или двойные кавычки (" у).
Так что нет никакой разницы. Вместо этого, люди будут говорить вам выбрать тот стиль, который соответствует контексту, и быть последовательным. И я бы согласился, - добавив, что это бессмысленно, чтобы попытаться прийти с "Конвенции" и для такого рода вещи, потому что вы'будете только в конечном итоге запутывает новичков.
Я предпочитаю ', особенно для
'''Комментарии''', как мне найти в
"" и"и это создает некоторые Пух" в" и"в. Кроме того,
'` могут быть введены без &ЛТ;и&ГТ;сдвиг&ЛТ;/роз&ГТ; ключ на мой швейцарская немецкая клавиатура.
Я с тех пор, используя тройные кавычки для в "" и на"Комментарии" и" и"
В, чтобы соответствовать требованиям ОПТОСОЗ 257.
Я'м с Будут:
Я'будете придерживаться этого, даже если это означает большое побега.
Я получаю максимальную отдачу одиночных кавычках стоя из-за кавычек. Остальные рекомендации просто отдать эти одиночные кавычки идентификаторы некоторые стоячие места.
Если имеющаяся у вас строка содержит одно из них, то следует использовать другое. Например, "Вы'можете сделать это"
, или 'Он сказал "Привет!"'
. В остальном, вы просто должны быть настолько последовательны, насколько это возможно (в рамках модуля, в рамках пакета, в рамках проекта, в рамках организации).
Если ваш код будут читать люди, работающие с C/C++ (или если вы переключаетесь между этими языками и Python), то использование ''
для односимвольных строк и """
для более длинных строк может облегчить переход. (Аналогично для других языков, где они не взаимозаменяемы).
В коде Python, который я видел в реальной жизни, предпочтение отдается """'', а не
'', но незначительно. Единственным исключением является то, что
"""эти"- и "эти" встречаются гораздо чаще, чем
'''''''- из того, что я видел.
Трехместный цитирует комментарии интересную подтему этот вопрос. ОПТОСОЗ 257 указывает тройные кавычки для строк документа doc. Я сделал быструю проверку, используя поиск кода Google и обнаружили, что три двойные кавычки в Python около 10 раз так популярны, как тройные одинарные кавычки -- 1.3 м против 131K вхождения в код Google индексирует. Так что в случае строке ваш код, вероятно, будет более привычен для людей, если он использует тройные двойные кавычки.
"If you're going to use apostrophes,
^
you'll definitely want to use double quotes".
^
По той простой причине, я всегда использовать двойные кавычки снаружи. Always
Говоря в пуху, что хорошего упорядочивания строковых литералов с ' Если вы'вновь придется использовать Escape-символы для представления Апострофа? Это оскорбляет кодеров, чтобы читать романы? Я могу'т представьте себе, насколько болезненным школе английский класс для вас!
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'
Я использую двойные кавычки в целом, а не для каких-либо конкретных причин - вероятно, просто по привычке от Java.
Я думаю, что вы're также более вероятно, хотите, чтобы апострофы в встроенный строковый литерал, чем вы хотите двойные кавычки.
Это's наверное стилистический больше всего предпочтений. Я только что проверил ОПТОСОЗ 8, и я'т вижу никакого упоминания о Один против двойных кавычек.
Я предпочитаю одинарные кавычки, потому что его только один клик вместо двух. То есть, я не'т иметь, чтобы размять клавишу Shift, чтобы сделать одинарную кавычку.
В языке Perl, который вы хотите использовать одинарные кавычки, когда у вас есть строка, которая не'т нужно интерполировать переменные или экранированные символы как \н \т \р и т. д.
PHP делает то же различие, как Perl: содержание в одинарные кавычки не будут интерпретироваться (даже не \N будет преобразован), а не двойные кавычки, которые могут содержать переменные, чтобы их значение распечатать.
Python не, я'м боится. Технически видно, нет $ токен (или подобное), чтобы отделить имя/текст из переменной в Python. Обе эти функции делают на Python более читаемым, менее запутанной, в конце концов. Одинарные и двойные кавычки могут использоваться в Python.
Я просто использую все, что поражает мое воображение в то время; его's удобный, чтобы быть в состоянии переключиться между двумя по наитию!
Конечно, при цитировании цитата characetrs, переключение между двумя может быть и не так прихотливы в конце концов...
Я решил использовать двойные кавычки, потому что они легче увидеть.
Я стремлюсь свести к минимуму пикселей и удивление. Я обычно предпочитаю '
чтобы свести к минимуму пикселей, но в "
вместо того, чтобы если в строке имеется Апостроф, снова чтобы минимизировать пикселей. За строкой документации, однако, я предпочитаю в "" и"
в более'''
потому что последний является нестандартным, необычным, и поэтому удивительно. Если теперь у меня есть куча строк, где я использовал "
в соответствии с описанной выше логикой, но и тот, который может уйти с ' я все еще можете использовать
"` в в это, чтобы сохранить последовательность, только свести к минимуму сюрприз.
Возможно, это помогает думать о философии минимизации пикселя следующим образом. Вы бы предпочли, что английские символы выглядели как Б
или АА ВВ СС
? Последний выбор отходов 50% от непустой пикселей.
Вкус вашей команды или руководство по кодированию вашего проекта.
Если вы работаете в многоязычной среде, вы можете поощрять использование того же типа кавычек для строк, который используется в другом языке, например. В остальном, лично мне больше всего нравится вид '
Я использую двойные кавычки, потому что я делал это в течение многих лет в большинстве языков программирования (C++, Ява, ВБ...), кроме Баш, потому что я также использовать двойные кавычки в обычный текст, и потому что я'м через это (измененные) номера-английской клавиатуры, где оба персонажа требует смены ключа.
'
= в "
/
= \
= \\
пример :
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
и ж \
разве'т действует убегает, как \Т
или \N
или \\
или \"
в
Если вы хотите воспользоваться одной черты (а их интерпретировали как таковой), то нужно использовать и quot;сырой" и строки. Вы можете сделать это, положить 'Р
' перед строкой
im_raw = r'c:\temp.txt'
non_raw = 'c:\\temp.txt'
another_way = 'c:/temp.txt'
Насколько путей в Windows обеспокоены, косая черта интерпретируется таким же образом. Ясно, хотя сама строка отличается. Я бы'т гарантировать, что они'вновь обработал таким образом на внешнем устройстве, хотя.