Considerar:
>>> r"what"ever"
SyntaxError: invalid syntax
>>> r"what\"ever"
'what\\"ever'
Entonces, ¿cómo obtenemos la cotización, pero no la barra?
Y por favor no sugiera r'what"ever'
, porque entonces la pregunta es cómo incluimos ambos tipos de citas.
Respuestas:
Si desea usar comillas dobles en cadenas pero no comillas simples, puede usar comillas simples como delimitador en su lugar:
r'what"ever'
Si necesita ambos tipos de comillas en su cadena, use una cadena entre comillas triples:
r"""what"ev'er"""
Si desea incluir ambos tipos de cadenas entre comillas triples en su cadena (un caso extremadamente improbable), no puede hacerlo y tendrá que usar cadenas no crudas con escapes.
fuente
r"raw string"
y C #@"@-quoted string"
y"""triple quotes"""
r'what"ever"
un error de análisis? ¿Quiso decirr'what"ever'
?Python tiene más de una forma de hacer cadenas. La siguiente sintaxis de cadena le permitiría usar comillas dobles:
'''what"ever'''
fuente
Si necesita cualquier tipo de cita (simple, doble y triple para ambos) puede "combinar" (0) las cadenas:
>>> raw_string_with_quotes = r'double"' r"single'" r'''double triple""" ''' r"""single triple''' """ >>> print raw_string_with_quotes double"single'double triple""" single triple'''
También puede "combinar" (0) cadenas sin procesar con cadenas no sin procesar:
>>> r'raw_string\n' 'non-raw string\n' 'raw_string\\nnon-raw string\n'
(0): De hecho, el analizador de Python une las cadenas y no crea varias cadenas. Si agrega el operador "+", se crean y combinan varias cadenas.
fuente
No importa, la respuesta son cadenas crudas entre comillas triples:
r"""what"ever"""
fuente
Dado que me topé con esta respuesta, y me ayudó mucho, pero encontré un problema sintáctico menor, sentí que debería evitar la frustración de otros. La cadena entre comillas triples funciona para este escenario como se describe, pero tenga en cuenta que si el "que desea en la cadena aparece al final de la cadena en sí:
somestr = """This is a string with a special need to have a " in it at the end""""
Obtendrá un error en la ejecución porque las comillas "" "" (4) en una fila confunden al lector de cadenas, ya que cree que ya ha llegado al final de la cadena y luego encuentra un "aleatorio". Puede validar esto insertando un espacio en las 4 comillas así: "" "" y no tendrá el error.
En este caso especial, deberá utilizar:
somestr = 'This.....at the end"'
o use el método descrito anteriormente para construir múltiples cadenas con una mezcla de "y" y luego concatenarlas después del hecho.
fuente
Solo para incluir la nueva funcionalidad compatible con Python f String:
var_a = 10 f"""This is my quoted variable: "{var_a}". """
fuente
f"foo\"bar"
.Utilizar:
dqote='"' sqote="'"
Utilice el operador '+'
dqote
y lassquote
variables y para obtener lo que necesita.Si quiero
sed -e s/",u'"/",'"/g -e s/^"u'"/"'"/
, puedes probar lo siguiente:dqote='"' sqote="'" cmd1="sed -e s/" + dqote + ",u'" + dqote + "/" + dqote + ",'" + dqote + '/g -e s/^"u' + sqote + dqote + '/' + dqote + sqote + dqote + '/'
fuente