Как включить цитату в строку Python?

>>> r"what"ever"
SyntaxError: invalid syntax
>>> r"what\"ever"
'what\\"ever'

Так, как мы получаем цитату, но не слеш?

И, пожалуйста, не предлагайте r'what"ever' потому что тогда возникает вопрос: как включить оба типа цитат?

связанные с

6 ответов

Решение

Если вы хотите использовать двойные кавычки в строках, но не одинарные, вы можете использовать вместо них одинарные кавычки:

r'what"ever'

Если вам нужны оба вида кавычек в вашей строке, используйте строку с тройными кавычками:

r"""what"ev'er"""

Если вы хотите включить в строку оба вида строк в тройных кавычках (крайне маловероятный случай), вы не сможете этого сделать, и вам придется использовать не необработанные строки с escape-символами.

Если вам нужен любой тип цитирования (одинарный, двойной и тройной для обоих), вы можете "объединить"(0) строки:

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

Вы также можете "объединить"(0) необработанные строки с не необработанными строками:

>>> r'raw_string\n' 'non-raw string\n'
'raw_string\\nnon-raw string\n'

(0): Фактически парсер python соединяет строки, он не создает несколько строк. Если вы добавите оператор "+", то несколько строк будут созданы и объединены.

В Python есть несколько способов создания строк, следующий синтаксис строки позволит вам использовать двойные кавычки:

'''what"ever'''

Поскольку я наткнулся на этот ответ, и он мне очень помог, но я обнаружил небольшую синтаксическую проблему, я чувствовал, что должен спасти других от возможного разочарования. Строка с тройными кавычками работает для этого сценария, как описано, но обратите внимание, что, если "вы хотите в строке, появляется в конце самой строки:

somestr = """This is a string with a special need to have a " in it at the end""""

Вы получите ошибку при выполнении, потому что кавычки """" (4) в строке сбивают с толку читателя строки, так как он думает, что уже достиг конца строки, а затем находит случайное значение "там. Вы можете проверить это вставив пробел в 4 кавычки примерно так: " """ и он не будет иметь ошибки.

В этом особом случае вам нужно будет использовать:

somestr = 'This.....at the end"'

или используйте метод, описанный выше, для построения нескольких строк со смешанным "и", а затем конкатенации их по факту.

Неважно, ответ - строки в тройных кавычках:

r"""what"ever"""

Просто чтобы включить новую функциональность, совместимую с Python f String:

var_a = 10

f"""This is my quoted variable: "{var_a}". """
dqote='"'
sqote="'"

используйте оператор "+" и dqote а также squote переменные, чтобы получить то, что вам нужно

если я хочуsed -e s/",u'"/",'"/g -e s/^"u'"/"'"/ Вы можете попробовать следующее

dqote='"'
sqote="'"
cmd1="sed -e s/"+dqote+",u'"+dqote+"/"+dqote+",'"+dqote+'/g -e s/^"u'+sqote+dqote+'/'+dqote+sqote+dqote+'/'
Другие вопросы по тегам