Есть ли разница между" строкой " и "строкой" в Python? [дубликат]



этот вопрос уже есть ответ здесь:




  • Одинарные кавычки и двойные кавычки в Python [закрыт]

    19 ответов



в PHP строка, заключенная в" двойные кавычки", будет проанализирована для замены переменных, тогда как строка, заключенная в "одинарные кавычки", не будет. В Python это также применимо?

733   9  

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

    Ничего не найдено.