Есть ли разница между" строкой " и "строкой" в Python? [дубликат]
этот вопрос уже есть ответ здесь:
Одинарные кавычки и двойные кавычки в Python [закрыт]
19 ответов
в PHP строка, заключенная в" двойные кавычки", будет проанализирована для замены переменных, тогда как строка, заключенная в "одинарные кавычки", не будет. В Python это также применимо?
9 ответов:
нет:
2.4.1. Строковые и байтовые литералы
...на простом английском языке: оба типа литералов могут быть заключены в соответствующие одинарные кавычки (
') или двойные кавычки ("). Они также могут быть заключены в соответствующие группы из трех одинарных или двойных кавычек (эти обычно называются тройными кавычками). Обратная косая черта (\) символ используется для экранирования символов, которые в противном случае имеют особое значение, такие как перевод строки, сама обратная косая черта или символ кавычки...
Python является одним из немногих (?) языки, где ' и " имеют одинаковую функциональность. Выбор для меня обычно зависит от того, что находится внутри. Если я собираюсь процитировать строку, в которой есть одинарные кавычки, я буду использовать двойные кавычки и наоборот, чтобы сократить необходимость экранировать символы в строке.
примеры:
"this doesn't require escaping the single quote" 'she said "quoting is easy in python"'это задокументировано на странице "строковые литералы" документации python:
в некоторых других языках метасимволы не интерпретируются при использовании одинарных кавычек. Возьмите этот пример в Ruby:
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"опять же, есть трижды в кавычках, которые позволяют не только цитировать символов и строк должны быть неэкранированными.
вы можете подставлять переменные в строку с помощью именованных спецификаторов и встроенных locals ():
name = 'John' lastname = 'Smith' print 'My name is %(name)s %(lastname)s' % locals() # prints 'My name is John Smith'
разница между " и ' строковое цитирование только в стиле-за исключением того, что один устраняет необходимость экранирования другого внутри содержимого строки.
стиль
PEP8 рекомендует последовательное правило, PEP257 предполагает, что docstrings используют тройные двойные кавычки.
в Python строки в одинарных и двойных кавычках являются тот же. Этот ОПТОСОЗ не дает рекомендации для этого. Выберите правило и придерживаться этого. Если строка содержит одинарную или двойную кавычку персонажи, однако, использовать другой, чтобы избежать обратной косой черты в строка. Это улучшает читаемость.
для строк в тройных кавычках всегда используйте символы двойных кавычек в соответствии с соглашением docstring в PEP 257 .
(например, при подготовке кода для I18N я запускаю полуавтоматическое регулярное выражение, быстро преобразующее строки с двойными кавычками для использования, например,
gettext)
интерактивный интерпретатор Python предпочитает одинарные кавычки:
>>> "text" 'text' >>> 'text' 'text'это может сбить с толку новичков, поэтому я бы придерживался одинарных кавычек (если у вас нет разных стандартов кодирования).
есть 3 способа вы можете qoute строки в python: "строка" 'string' """ строка строка """ все они дают один и тот же результат.
нет никакой разницы в 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
Comments