Pergunta

Esta questão já tem uma resposta aqui:

Em PHP, uma corda entre "aspas duplas" será analisado para as variáveis ??para substituir enquanto uma corda fechada em 'aspas simples' não vai. Em Python, isso também se aplica?

Foi útil?

Solução

Sem :

2.4.1. Cordas e Bytes literais

... Na planície Inglês: Ambos os tipos de literais pode ser fechado em combinar aspas simples (') ou aspas duplas ("). Eles também podem ser colocados em grupos de três citações simples ou duplas correspondentes (estes são geralmente referidos como cadeias triplas-citado). O personagem (\) barra invertida é usado para escapar caracteres que de outra forma têm um significado especial, como a nova linha, a própria contrabarra, ou o caracter de aspas ...

Outras dicas

Python é um dos poucos (?) Línguas em que "e" têm funcionalidade idêntica. A escolha para mim geralmente depende do que está dentro. Se eu vou citar uma cadeia que tem aspas simples dentro dele eu vou usar aspas duplas e vice-versa, para reduzir o tempo de ter que escapar caracteres na cadeia.

Exemplos:

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

Isso está documentado na página "String literais" da documentação python:

Em alguns outros idiomas, meta caracteres não são interpretados se você usar aspas simples. Veja este exemplo em Ruby:

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

Em Python, se quiser que a string a ser tomada literalmente, você pode usar cordas primas (uma string precedido pelo caractere 'r'):

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

Single e cadeias entre aspas duplas em Python são idênticos. A única diferença é que as cadeias individuais-citado pode conter unescaped aspas duplas, e vice-versa. Por exemplo:

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

Então, novamente, há cordas triplo-citado, que permitem que ambos os caracteres cotação e novas linhas para ser unescaped.

Você pode substituir variáveis ??em uma string usando especificadores nomeados e os locais () builtin:

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

O interpretador Python interativo prefere aspas simples:

>>> "text"
'text'

>>> 'text'
'text'

Isto pode ser confuso para iniciantes, então eu ia ficar com aspas simples (a menos que você tem diferentes padrões de codificação).

A diferença entre "e 'string citando está apenas em estilo -., Exceto que o elimina a necessidade de escapar a outra dentro do conteúdo corda

Style

PEP8 recomenda uma regra consistente, PEP257 sugere que docstrings usar aspas duplas triplos.

Em Python, cordas individuais citado e strings com aspas duplas são o mesmo. Esta PEP não fazer uma recomendação para isso. Escolha uma regra e cumpri-lo. Quando uma string contém aspas simples ou duplas caracteres, no entanto, usar o outro para evitar as barras invertidas no corda. Além disso, melhora a legibilidade.

Para strings triplo-citado, sempre usar caracteres aspas duplas para ser consistente com a convenção Docstring em PEP 257.

Amplamente utilizado, porém, é a prática de preferir aspas duplas para seqüências de linguagem natural (incluindo interpolação) - portanto, qualquer coisa que é potencialmente candidato para I18N. E aspas simples para cordas técnicas: símbolos, caracteres, caminhos, opções de linha de comando, Regexes técnicos, ...

(Por exemplo, quando se prepara o código para I18N, corro um REGEX semi-automático convertendo cordas dupla citados rapidamente para a utilização de, por exemplo, gettext)

Existem 3 maneiras que você pode Qoute cordas em python: "corda" 'corda' """ corda corda """ todos eles produzem o mesmo resultado.

Não há nenhuma diferença em Python, e você pode realmente usá-lo para a sua vantagem quando gerar XML. sintaxe XML correta requer aspas em torno de valores de atributos, e em muitas linguagens, como Java, Isso força você a escapar-los ao criar uma string como esta:

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

Mas em Python, você simplesmente usar a outra citação e certifique-se de usar a citação final correspondência assim:

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

huh bonito agradável? Você também pode usar três aspas para começar e terminar cordas multi-linha, com o EOL incluído como esta:

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'."""

Sim. Aqueles que reivindicam aspas simples e duplas são idênticos em Python são simplesmente errado.

Caso contrário, o código a seguir, a seqüência entre aspas não teria tomado um extra de 4,5% mais tempo para Python para processo:

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)

Output:

>python_quotes_test.py
Time using single quotes: 13.9079978466
Time using double quotes: 14.5360121727

Então, se você quer código respeitável rápido limpo, onde você parece saber o seu material, usar aspas simples para cordas sempre prático. Você também vai gastar menos energia, ignorando a tecla shift.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top