Python: Кавычки
В этом уроке мы разберемся, что такое строка и какую роль в коде играют кавычки.
Определить строку довольно просто — это некий набор символов. Представим, что у нас есть такие записи:
'Hello' 'Goodbye' 'G' ' ' ''
Какие из этих вариантов — строки? На самом деле, все пять вариантов подходят:
- С ‘Hello’ и ‘Goodbye’ все очевидно — мы уже работали с подобными конструкциями и называли их строками
- ‘G’ и ‘ ‘ — тоже строки, просто в них всего по одному символу
- » — это пустая строка, потому в ней ноль символов
Строкой мы считаем все, что находится внутри кавычек: даже если это пробел, один символ или вообще отсутствие символов.
Выше мы записывали строки в одинарных кавычках, но это не единственный способ. Можно использовать и двойные:
print("Dracarys!")
Теперь представьте, что вы хотите напечатать строчку Dragon’s mother. Апостроф перед буквой s — это такой же символ, как одинарная кавычка. Попробуем:
print('Dragon's mother') # SyntaxError: invalid syntax
Такая программа не будет работать. С точки зрения Python строчка началась с одинарной кавычки, а потом закончилась после слова dragon. Дальше были символы s mother без кавычек — значит, это не строка. А потом была одна открывающая строку кавычка, которая так и не закрылась: ‘) . Этот код содержит синтаксическую ошибку — это видно даже по тому, как подсвечен код.
Чтобы избежать этой ошибки, мы используем двойные кавычки. Такой вариант программы сработает верно:
print("Dragon's mother")
Теперь интерпретатор знает, что строка началась с двойной кавычки и закончиться должна тоже на двойной кавычке. А одинарная кавычка внутри стала частью строки.
Верно и обратное. Если внутри строки мы хотим использовать двойные кавычки, то саму строку надо делать в одинарных. Причем количество кавычек внутри самой строки неважно.
Теперь представим, что мы хотим создать такую строку:
Dragon's mother said "No"
В ней есть и одинарные, и двойные кавычки. Нам нужно каким-то образом указать интерпретатору, что кавычки — это один из символов внутри строки, а не начало или конец строки.
Для этого используют символ экранирования: \ — обратный слэш. Если мы поставим \ перед кавычкой (одинарной или двойной), то интерпретатор распознает кавычку как обычный символ внутри строки, а не начало или конец строки:
# Экранируем кавычки вокруг No, чтобы интерпретатор # распознал их как часть строки print("Dragon's mother said \"No\"") # => Dragon's mother said "No"
Обратите внимание, что в примере выше нам не пришлось экранировать одинарную кавычку (апостроф ‘s), потому что сама строка создана с двойными кавычками. Если бы строка создавалась с одинарными кавычками, то символ экранирования нужен был бы перед апострофом, но не перед двойными кавычками.
Если нужно вывести сам обратный слеш, то работает такое же правило. Как и любой другой специальный символ, его надо экранировать:
print("\\") # => \
Задание
Напишите программу, которая выведет на экран:
"Khal Drogo's favorite word is "athjahakar""
Программа должна вывести на экран эту фразу в точности. Обратите внимание на кавычки в начале и в конце фразы:
"Khal Drogo's favorite word is "athjahakar""
Упражнение не проходит проверку — что делать?
Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
- Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Мой код отличается от решения учителя
Это нормально , в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.
В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Прочитал урок — ничего не понятно
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.
Глава 5.4 Одинарные и двойные кавычки в Python3
Для вывода строковых значений в Python3 необязательно использовать одинарные кавычки. Если вы заключите текст, который необходимо вывести, в двойные кавычки, то эффект будет таким же.
Рис 5.4-1 Использование одинарных и двойных кавычек в Python3
Однако при попытке использовать разные типы кавычек в одной строке, будет немедленно выведено сообщение об ошибке:

Рис 5.4-2 Ошибка в использовании кавычек разных типов
Каждый может использовать тот тип кавычек, который ему больше нравится. Разницы не будет никакой. Просто будьте внимательны, чтобы не допустить использования разных типов кавычек в одном строковом значении.
Если строка заключена в одинарные кавычки, а вам по зарез нужно вывести на экран, какое-нибудь слово в одинарных кавычках, то их, кавычки, следует экранировать символом бэкслеша, как это было показано в Главе 5.2. Вообще, все кавычки, которые необходимо вывести на экран надежнее экранировать в любом случае:

Рис 5.4-3 Использование нескольких одинарных кавычек в строке
Как видите, хоть мы и использовали несколько однотипных кавычек в одной строке, они нормально напечатались. Однако, можно поступить и проще — просто используя различные типы кавычек для ограничения строки и выделения в ней отдельных слов. Так, если мы всю строку заключим в двойные скобки, то в экранировать одинарные кавычки внутри этой строки не нужно:

Рис. 5.4-4 Использование разных типов кавычек в одной строке.
Как видите, все сработало просто отлично. Разумеется, можно для выделения строки использовать одинарные кавычки, а слова, внутри этой строки, выделять двойными кавычками. Интерпретатор Python3 достаточно сообразителен, чтобы понять: если строка начинается одним типом кавычек, заканчиваться другим типом она не может. Как удобно — так и делайте.
Заключение.
На этом пятая глава заканчивается. Мы научились использовать ключевое слово end, функции print(), разобрались, как форматировать текст, который мы выводим пользователю. Кроме того, изучили нюансы применения одинарных и двойных кавычек в Python3.
Было бы очень хорошо, если бы вы написали свой вариант программы «Шутки». Даже если вы не знаете ни одной шутки — Интернет вам поможет отыскать что-нибудь подходящее. Зато вы сможете практически закрепить полученные знания.
Одинарные, двойные и тройные кавычки в строке Python
Язык программирования Python может манипулировать строками, которые могут быть записаны несколькими способами. Текстовые строки могут быть заключены в одинарные кавычки ( ‘. ‘ ) или двойные кавычки ( «. » ), что в результате будет одно и то же. Знак обратной косой черты ‘\’ может использоваться для экранирования кавычек:
# одинарные кавычки >>> 'spam eggs' # 'spam eggs' # используем \' для экранирования кавычки >>> 'doesn\'t' # "doesn't" # или вместо этого, используйте двойные кавычки >>> "doesn't" "doesn't" >>> '"Yes," they said.' # '"Yes," they said.' >>> "\"Yes,\" they said." # '"Yes," they said.' >>> '"Isn\'t," they said.' # '"Isn\'t," they said.'
Правило. Если строка содержит одинарную кавычку и не содержит двойных кавычек, то строка обрамлена двойными кавычками, в противном случае она заключена в одинарные кавычки.
Функция print() создает более читаемый вывод, опуская заключающие кавычки и печатая экранированные и специальные символы:
>>> '"Isn\'t," they said.' # '"Isn\'t," they said.' >>> print('"Isn\'t," they said.') # "Isn't," they said. # \n означает новую строку >>> s = 'First line.\nSecond line.' # без print(), \n включается в вывод >>> s # 'First line.\nSecond line.' # с помощью print(), \n создает новую строку >>> print(s) # First line. # Second line.
Тройные кавычки.
Строковые литералы могут занимать несколько строк. Одним из способов является использование тройных кавычек: «»». «»» или »’. »’ . Конец строк автоматически включается в строку, но это можно предотвратить, добавив \в конец строки. Следующий пример:
print(""" Usage: thingy [OPTIONS] -h Display this usage message -H hostname Hostname to connect to """)
Производит следующий вывод, обратите внимание, что начальный перевод строки не включен:
Usage: thingy [OPTIONS] -h Display this usage message -H hostname Hostname to connect to
- ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
- Преобразование строки в число
- Строку в список, кортеж или множество символов
- Одинарные, двойные и тройные кавычки в строке Python
- Вывод специальных символов в строке Python «как есть»
- Объединение и повторение строк
- Индексирование строк
- Использование срезов строк
- Cрез строки Python от заданного символа/знака до конца строки
- Создание макета для печати базовыми методами строк
- Способы форматирования текстовых строк
- Подсчет повторений слов в тексте, деление строки на список слов
- Удаление слова из строки Python по фрагменту или шаблону
- Удаление пунктуации из строки
- Деление строки по заглавным буквам
- Создание отчетов и писем по шаблонам
Как поставить кавычки в питоне: простой гайд и примеры кода
В Питоне можно поставить кавычки двумя способами: одинарными (») и двойными («»). Это позволяет использовать кавычки внутри строки. Вот примеры: — Одинарные кавычки:
строка = 'Пример с одинарными кавычками'
— Двойные кавычки:
строка = "Пример с двойными кавычками"
Детальный ответ
Как поставить кавычки в питоне?
Python — это мощный и популярный язык программирования, который широко используется для разработки приложений и веб-сайтов. При написании программ на Python очень важно понимать, как правильно поставить кавычки, чтобы указать на строки или символы в коде.
Одинарные или двойные кавычки?
Python позволяет использовать как одинарные кавычки (‘), так и двойные кавычки («). Оба варианта равноценны и не имеют различий в функциональности. Вы можете выбрать любой из них в зависимости от своих предпочтений или рекомендаций стилевого руководства вашего проекта. Например, чтобы определить строку ‘Привет, мир!’, можно использовать следующий код:
text = 'Привет, мир!'
Альтернативно, вы можете использовать двойные кавычки для определения строки:
text = "Привет, мир!"
Экранирование кавычек
Иногда внутри строки вам может понадобиться использовать кавычки. Например, если вы хотите написать фразу «Он сказал: ‘Привет, мир!'», то необходимо экранировать внутренние кавычки, чтобы Python не принял их за завершение строки. Для этого используйте обратный слэш (\).
text = "Он сказал: 'Привет, мир!'"
Тройные кавычки для многострочных строк
Python также предоставляет тройные кавычки (три одинарные или три двойные) для определения многострочных строк. Это может быть полезно, когда вам нужно включить в строку несколько строк текста.
text = '''Это многострочная строка'''
Вы также можете использовать тройные кавычки, чтобы включить в строку символ переноса строки:
text = """Это многострочная строка с переносом строки"""
Как видите, тройные кавычки позволяют вам легко определить многострочные строки без необходимости экранирования символов переноса строки или кавычек.
Управление кавычками внутри строк
Если внутри строки вам понадобилось использовать определенный тип кавычек, вы можете поменять тип кавычек, окружив строку другим типом. Вот пример:
text = 'Он сказал: "Привет, мир!"'
В этом случае, чтобы включить двойные кавычки внутри строки, используются одинарные кавычки для определения строки.
Заключение
Ставить кавычки в Python просто, но важно понимать, как использовать различные варианты и экранирование кавычек. Выбор между одинарными и двойными кавычками в основном определяется вашими предпочтениями и правилами стилевого руководства. Не забывайте использовать тройные кавычки для определения многострочных строк.
