Considerar:
>>> r"what"ever"
SyntaxError: invalid syntax
>>> r"what\"ever"
'what\\"ever'
Então, como obtemos a citação, mas não a barra?
E, por favor, não sugira r'what"ever'
, porque então a questão é: como incluímos os dois tipos de citações?
Respostas:
Se quiser usar aspas duplas em strings, mas não aspas simples, você pode usar aspas simples como delimitador:
r'what"ever'
Se você precisar dos dois tipos de aspas em sua string, use uma string entre aspas triplas:
r"""what"ev'er"""
Se você quiser incluir os dois tipos de strings com aspas triplas em sua string (um caso extremamente improvável), você não pode fazer isso e terá que usar strings não brutas com escapes.
fonte
r"raw string"
e C #'s@"@-quoted string"
e"""triple quotes"""
r'what"ever"
um erro de análise? Você quis dizerr'what"ever'
?Python tem mais de uma maneira de fazer strings. A seguinte sintaxe de string permite que você use aspas duplas:
'''what"ever'''
fonte
Se precisar de qualquer tipo de citação (simples, dupla e tripla para ambos), você pode "combinar" (0) as strings:
>>> 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'''
Você também pode "combinar" (0) strings brutas com strings não brutas:
>>> r'raw_string\n' 'non-raw string\n' 'raw_string\\nnon-raw string\n'
(0): Na verdade, o analisador Python une as strings e não cria várias strings. Se você adicionar o operador "+", várias strings serão criadas e combinadas.
fonte
Esqueça, a resposta são strings brutas entre aspas triplas:
r"""what"ever"""
fonte
Como tropecei nessa resposta, e ela me ajudou muito, mas encontrei um pequeno problema sintático, achei que deveria evitar a possível frustração dos outros. A string entre aspas triplas funciona para este cenário conforme descrito, mas observe que se o "que você deseja na string ocorrer no final da própria string:
somestr = """This is a string with a special need to have a " in it at the end""""
Você encontrará um erro na execução porque as "" "" (4) aspas consecutivas confundem o leitor de string, pois ele pensa que já atingiu o fim da string e encontra um "aleatório". Você pode validar isso inserindo um espaço entre as 4 aspas assim: "" "" e não terá o erro.
Neste caso especial, você precisará usar:
somestr = 'This.....at the end"'
ou use o método descrito acima para construir várias strings com "e 'misto e então concatená-las após o fato.
fonte
Apenas para incluir uma nova funcionalidade compatível com Python f String:
var_a = 10 f"""This is my quoted variable: "{var_a}". """
fonte
f"foo\"bar"
.Usar:
dqote='"' sqote="'"
Use o operador '+'
dqote
e assquote
variáveis para obter o que você precisa.Se eu quiser
sed -e s/",u'"/",'"/g -e s/^"u'"/"'"/
, você pode tentar o seguinte:dqote='"' sqote="'" cmd1="sed -e s/" + dqote + ",u'" + dqote + "/" + dqote + ",'" + dqote + '/g -e s/^"u' + sqote + dqote + '/' + dqote + sqote + dqote + '/'
fonte