Строки в Python: текст, кавычки и длина
Автор: Казачкин Даниил Михайлович · Обновлено
Строка — упорядоченная последовательность символов. Кавычки обозначают её границы и не входят в значение. Одинарные и двойные кавычки равноправны, поэтому внешний вид выбирают так, чтобы текст внутри было удобно записать.
Соединение текста и измерение длины
name = 'Лена'
message = 'Привет, ' + name + '!'
print(message)
print(len(name))
print(len(message))Ожидаемый вывод:
Привет, Лена!
4
12len считает все символы, включая пробел, запятую и восклицательный знак. Индексация начинается с нуля, но подробно она будет разобрана позже. Сейчас важно отличать длину строки от числа, записанного внутри неё: len('120') равно 3, а само число 120 не имеет строковой длины без преобразования.
Кавычка внутри текста
Запись 'Книга 'Python'' синтаксически неверна: внутренняя кавычка преждевременно завершает строку. Можно использовать двойные внешние кавычки — "Книга 'Python'" — или экранировать символ обратной косой чертой. Перенос строки внутри значения записывают как ; при выводе он создаёт новую строку.
Оператор + соединяет только строки. Попытка 'Возраст: ' + 12 вызывает TypeError; число нужно преобразовать через str(12) или передать в print отдельным аргументом. Оператор * повторяет строку: 'ha' * 3 даёт 'hahaha'.
Мини-проверка текста
Прочитайте название города, сформируйте сообщение Город: ... и выведите длину исходного ввода и готового сообщения. Проверьте слово Омск и строку из двух слов с пробелом. Затем создайте рамку из десяти дефисов через умножение строки. До запуска посчитайте ожидаемые длины вручную и объясните, какие пробелы входят в результат.
Строка как значение
Создайте пять строк: пустую, из одного пробела, с переводом строки, с русским словом и с emoji. Для каждой выведите repr и len, чтобы невидимые символы стали заметны. Сравните пустую строку с пробельной после strip. Затем соберите адрес из города и улицы, намеренно пропустив разделительный пробел, и исправьте формат. В конце объясните, почему длина пользовательского ввода может не совпасть с визуальным ожиданием и почему проверка text == '' отличается от проверки not text.strip(). Эксперимент должен опираться на фактические значения, а не на внешний вид консоли.
Практикум: строка объявления с кавычками и переносами
Соберите объявление из заголовка, имени автора и двух строк описания. Один фрагмент должен содержать апостроф, другой — двойные кавычки. Реализуйте запись с подходящими ограничителями и с экранированием, затем сравните читаемость. Выведите длину всего текста и проверьте, учитывается ли символ переноса. Создайте пустую строку и строку из одного пробела: они имеют разную длину и смысл. Не путайте исходный код с фактическим отображением новой строки.
Контрольная точка
Предскажите длину строки "A B" и назовите три содержащихся символа. Затем объясните, когда обратная косая черта должна остаться обычным символом и зачем может понадобиться raw-строка.
Частые вопросы
Строки в одинарных и двойных кавычках различаются?
По типу и возможностям — нет. Выбор ограничителя помогает уменьшить экранирование. Важно закрыть строку тем же видом кавычки и помнить, что тройные кавычки могут хранить многострочный текст.