Как включить цитату в строку Python? - PullRequest
74 голосов
/ 08 января 2011
>>> r"what"ever"
SyntaxError: invalid syntax
>>> r"what\"ever"
'what\\"ever'

Итак, как мы можем получить цитату, а не косую черту?

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

связанные

Ответы [ 6 ]

125 голосов
/ 08 января 2011

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

r'what"ever'

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

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

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

9 голосов
/ 08 января 2011

Если вам нужен любой тип цитирования (одинарный, двойной и тройной для обоих), вы можете «объединить» (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) rawстроки с необработанными строками:

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

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

9 голосов
/ 08 января 2011

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

'''what"ever'''
3 голосов
/ 08 января 2011

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

r"""what"ever"""
1 голос
/ 10 мая 2018

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

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

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

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

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

или используйте метод, описанный выше, для построения нескольких строк со смешанным «и» и последующего их объединения после факта.

0 голосов
/ 13 июня 2014

Использование:

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 + '/'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...