Comillas simples vs comillas dobles [cerrado]

73

Acabo de comenzar un trabajo en el que escribo Python después de provenir de un entorno Java, y me doy cuenta de que otros desarrolladores tienden a citar cadenas usando comillas simples ( '' ) en lugar de comillas dobles ( "" ) . Por ejemplo:

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

¿Hay alguna razón particular para esto que no sea la preferencia personal? ¿Es esta la forma correcta de estar citando cadenas? Específicamente, lo que quiero saber es si existe algún tipo de práctica recomendada estándar o aceptada que impulse este estilo de codificación.

    
pregunta Eric Hydrick 02.07.2012 - 01:14

6 respuestas

64

Las otras respuestas son correctas en el sentido de que no hace ninguna diferencia técnica, pero he visto una regla de estilo informal en un par de proyectos de código abierto: las comillas dobles se usan para cadenas que eventualmente podrían ser visibles para el usuario (ya sea o no necesitan traducción), y las comillas simples son para cadenas que se relacionan con la funcionalidad del propio código (por ejemplo, dictados, expresiones regulares, SQL).

Esto ciertamente no es una regla universal (o incluso está codificada en un PEP), por lo que, como cualquier otro aspecto arbitrario de la codificación, se reduce a las reglas locales.

    
respondido por el detly 02.07.2012 - 03:22
18

Es muy simple:

  • Las comillas simples permiten incrustaciones sin comillas de comillas dobles.
  • Las comillas dobles permiten la incrustación de comillas simples sin escape.

Es más Pythonic usar ' (comillas simples) hasta que necesite comillas dobles.

La siguiente cita es directamente de la documentación sobre literales de cadenas.

  

En inglés simple: los literales de cadena se pueden incluir en un solo single   comillas (') o comillas dobles ("). También se pueden incluir en la coincidencia   grupos de tres comillas simples o dobles (estos son generalmente referidos   como cadenas de tres comillas). El carácter de barra invertida () se utiliza para   personajes de escape que de otro modo tienen un significado especial, como   nueva línea, barra inversa en sí, o el carácter de la cita. Literales de cuerdas pueden   opcionalmente se prefija con una letra 'r' o 'R'; tales cadenas son   Llama cadenas en bruto y usa diferentes reglas para interpretar la barra invertida.   secuencias de escape. Un prefijo de 'u' o 'U' hace que la cadena sea Unicode   cuerda. Las cadenas Unicode utilizan el conjunto de caracteres Unicode como lo define   El consorcio Unicode y la ISO 10646. Algunos escapes adicionales   Las secuencias, que se describen a continuación, están disponibles en cadenas Unicode. Un prefijo   de 'b' o 'B' se ignora en Python 2; indica que el literal   debería convertirse en un literal de bytes en Python 3 (por ejemplo, cuando el código es   Convertido automáticamente con 2to3). Un prefijo 'u' o 'b' puede ser   seguido de un prefijo 'r'.

     

En cadenas entre comillas triples, se permiten nuevas líneas y comillas sin escaparse   (y se conservan), excepto que tres comillas no escapadas en una fila   terminar la cadena. (Una "cita" es el carácter usado para abrir el   cadena, es decir, 'o ".)

    
respondido por el Jarrod Roberson 02.07.2012 - 03:23
16

Desde una perspectiva técnica, no hay diferencia, desde una perspectiva de estilo, algunos pensamientos:

  • La mayoría de los otros lenguajes de programación usan comillas dobles.
  • Cuando se escribe en inglés, usualmente se usan comillas dobles.
  • Las comillas simples son útiles cuando tiene mucho texto no técnico / narrativo en su aplicación porque le permiten usar comillas dobles de una manera más natural. %código%
  • En el otro lado, el carácter de comillas simples también se usa en algunas ocasiones en el idioma inglés. %código%
respondido por el API-Beast 02.07.2012 - 02:56
4

Algunas cosas a considerar al desarrollar su hábito de usar comillas simples o dobles con regularidad.

Las comillas dobles requieren la introducción de dos dedos; y, por lo tanto, más propensos a errores tipográficos, así como a una disminución de la velocidad

Tu editor puede mostrar un carácter mejor que otro; para facilitar la depuración de la sintaxis visual.

Las cadenas de texto utilizan caracteres triples: ¿cuál se ve mejor? "" "" "" o '' '' ''

Aunque no he visto esto en el sistema operativo Windows, algunas herramientas de sintaxis o documentación pueden esperar comillas simples en doble verso.

Para la mayoría de los tutoriales de Python que he visto, veo lo contrario de tu experiencia. Generalmente veo comillas dobles usadas.

    
respondido por el DevPlayer 02.07.2012 - 03:27
4

En mi opinión, prefiero usar comillas dobles para una cadena.

¿Por qué? Para los programadores de otros idiomas se pueden adaptar rápidamente y entender el código más fácilmente.

Si un programador de C ve:

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

Será vacilante, en lugar de:

"Writing \"It's big?\" No."
    
respondido por el Lucio 02.07.2012 - 04:10
3

No hay diferencia entre usar comillas simples y comillas dobles en Python. En términos prácticos, dependiendo del tipo de datos con los que esté trabajando, puede encontrar uno u otro estilo más conveniente.

El tipo de citas utilizadas "por defecto" (donde no hay una razón convincente para usar una u otra) es una cuestión de preferencia personal.

Para obtener más información, consulte la sección Literales de cadenas en la documentación de Python.

    
respondido por el Greg Hewgill 02.07.2012 - 01:34

Lea otras preguntas en las etiquetas