Python - использование кавычек внутри кавычек
Ну... Когда я хочу сделать команду "print" в python, и мне нужно использовать кавычки, я не знаю, как это сделать, не закрывая предложение. Например:
напечатать "слово, которому нужны кавычки" "
Но когда я пытаюсь сделать то, что я сделал выше, я заканчиваю закрытие предложения, и я не могу поставить слово, которое мне нужно, между кавычками.
Как я могу это сделать?
Ответы
Ответ 1
Вы можете сделать это одним из трех способов:
1) Используйте одиночные и двойные кавычки вместе:
>>> print '"A word that needs quotation marks"'
"A word that needs quotation marks"
2) Побегите двойные кавычки внутри строки:
>>> print "\"A word that needs quotation marks\""
"A word that needs quotation marks"
3) Используйте тройные кавычки:
>>> print """ "A word that needs quotation marks" """
"A word that needs quotation marks"
Ответ 2
Вам нужно избежать этого:
>>> print "The boy said \"Hello!\" to the girl"
The boy said "Hello!" to the girl
>>> print 'Her name\ Jenny.'
Her name Jenny.
См. страницу python для строковых литералов.
Ответ 3
Python принимает как "и" как кавычки, так что вы можете сделать это как:
>>> print '"A word that needs quotation marks"'
"A word that needs quotation marks"
В качестве альтернативы просто выйдите из внутреннего "s
>>> print "\"A word that needs quotation marks\""
"A word that needs quotation marks"
Ответ 4
Используйте буквенный escape-символ \
print("Here is, \"a quote\"")
Символ в основном означает игнорировать семантический контекст моего следующего символа и обрабатывать его в прямом смысле.
Ответ 5
в Python 3.2.2 на Windows,
print(""""A word that needs quotation marks" """)
в порядке. Я думаю, что это усовершенствование интерпретатора Python.
Ответ 6
Вы также можете попробовать добавить строку:
print " "+'"'+'a word that needs quotation marks'+'"'
Ответ 7
Один случай, который распространен в дубликатах, - это требование использовать кавычки для внешних процессов. Обходной путь для этого - не использовать оболочку, которая устраняет требование для одного уровня цитирования.
os.system("""awk '/foo/ { print "bar" }' %""" % filename)
можно с пользой заменить на
subprocess.call(['awk', '/foo/ { print "bar" }', filename])
(который также исправляет ошибку, что метасимволы оболочки в filename
должны быть экранированы из оболочки, которую исходный код не смог выполнить, но без оболочки, не нужно для этого).
Конечно, в подавляющем большинстве случаев вы вообще не хотите или не нуждаетесь в внешнем процессе.
with open(filename) as fh:
for line in fh:
if 'foo' in line:
print("bar")