Aspas simples x aspas duplas [fechadas]

75

Acabei de começar um trabalho onde estou escrevendo Python depois de vir de um plano de fundo Java, e estou percebendo que outros desenvolvedores tendem a citar cadeias usando aspas simples ( '' ) em vez de aspas duplas ( "" ) . Por exemplo:

line1 = 'This is how strings typically look.'
line2 = "Not like this."

Existe alguma razão específica para isso além da preferência pessoal? Esta é a maneira correta de citar cordas? Especificamente, o que eu quero saber é se existe algum tipo de padrão ou prática recomendada que conduza esse estilo de codificação.

    
por Eric Hydrick 02.07.2012 / 01:14
fonte

6 respostas

64

As outras respostas estão corretas na medida em que não faz nenhuma diferença técnica, mas eu vi uma regra de estilo informal em alguns projetos de código aberto: aspas duplas são usadas para cadeias de caracteres que eventualmente podem ser visíveis para o usuário eles não precisam de tradução), e as aspas simples são para strings relacionadas à funcionalidade do próprio código (por exemplo, chaves dict, expressões regulares, SQL).

Esta certamente não é uma regra universal (ou mesmo codificada em um PEP), então, como qualquer outro aspecto arbitrário da codificação, ela se resume a regras locais.

Observe que o PEP 8 (que eu não havia notado quando escrevi essa resposta) diz :

This PEP does not make a recommendation for this. Pick a rule and stick to it. When a string contains single or double quote characters, however, use the other one to avoid backslashes in the string. It improves readability.

Como um comentarista aponta, isso não é necessariamente contraditório, dependendo de como você interpreta a "regra". O que eu sugiro, na verdade, não funciona com a segunda metade da citação.

    
por 02.07.2012 / 03:22
fonte
18

É muito simples:

  • As aspas simples permitem incorporação de aspas duplas sem escape.
  • As aspas duplas permitem a incorporação de aspas simples sem escape.

É mais Python usar ' (aspas simples) até você precisar de aspas duplas.

A seguinte citação é diretamente da documentação sobre literais de string.

In plain English: String literals can be enclosed in matching single quotes (') or double quotes ("). They can also be enclosed in matching groups of three single or double quotes (these are generally referred to as triple-quoted strings). The backslash () character is used to escape characters that otherwise have a special meaning, such as newline, backslash itself, or the quote character. String literals may optionally be prefixed with a letter 'r' or 'R'; such strings are called raw strings and use different rules for interpreting backslash escape sequences. A prefix of 'u' or 'U' makes the string a Unicode string. Unicode strings use the Unicode character set as defined by the Unicode Consortium and ISO 10646. Some additional escape sequences, described below, are available in Unicode strings. A prefix of 'b' or 'B' is ignored in Python 2; it indicates that the literal should become a bytes literal in Python 3 (e.g. when code is automatically converted with 2to3). A 'u' or 'b' prefix may be followed by an 'r' prefix.

In triple-quoted strings, unescaped newlines and quotes are allowed (and are retained), except that three unescaped quotes in a row terminate the string. (A “quote” is the character used to open the string, i.e. either ' or ".)

    
por 02.07.2012 / 03:23
fonte
16

De uma perspectiva técnica, não faz diferença, a partir de uma perspectiva de estilo, alguns pensamentos:

  • A maioria das outras linguagens de programação usa aspas duplas.
  • Ao escrever em inglês, geralmente são usadas aspas duplas.
  • As aspas simples são úteis quando você tem muito texto não técnico / narrativo em seu aplicativo porque elas permitem que você use aspas duplas de maneira mais natural. %código%
  • Por outro lado, o caractere de aspas simples também é usado em algumas ocasiões no idioma inglês. %código%
por 02.07.2012 / 02:56
fonte
4

Algumas coisas a considerar ao desenvolver seu hábito de usar cotações simples ou duplas regularmente.

Aspas duplas requerem digitação de dois dedos; e, portanto, mais provável para erros de digitação, bem como uma diminuição de velocidade

Seu editor pode mostrar um personagem melhor que outro; para facilitar a depuração visual da sintaxe.

Docstrings usam caracteres triplos: Qual parece melhor? "" "" "" ou '' '' ''

Embora eu não tenha visto isso no sistema operacional Windows, algumas ferramentas de sintaxe ou documentação podem esperar aspas duplas de verso duplo.

Para a maioria dos tutoriais em Python que vi, vejo o oposto de sua experiência. Eu costumo ver aspas duplas usadas.

    
por 02.07.2012 / 03:27
fonte
4

Na minha opinião, prefiro usar as aspas duplas para uma string.

Por quê? Para programadores de outras linguagens podem ser adaptados rapidamente e entender o código mais facilmente.

Se um programador C ver:

'Writing "It\'s big?" No.'

Será hesitante, em vez de:

"Writing \"It's big?\" No."
    
por 02.07.2012 / 04:10
fonte
3

Não há diferença entre o uso de aspas simples e aspas duplas no Python. Em termos práticos, dependendo do tipo de dados com os quais você está trabalhando, você pode achar um ou outro estilo mais conveniente.

O tipo de citações usadas "por padrão" (onde não há nenhuma razão convincente para usar uma ou outra) é basicamente uma questão de preferência pessoal.

Para obter mais informações, consulte a seção Literais de sequências na documentação do Python.

    
por 02.07.2012 / 01:34
fonte