Урок курса

Строки: создание и базовые операции

Python для новичков

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

Строковый литерал: создание строк в кавычках

Строка в Python — это последовательность символов. Чтобы записать строку прямо в коде, её берут в кавычки. Такая запись называется строковым литералом.

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

greeting = 'Привет'
name = "Мария"

Оба выражения создают значение типа str. Сами кавычки в строку не входят: greeting хранит ровно шесть символов — П, р, и, в, е, т.

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

note = "It's fine"

Иначе пришлось бы экранировать символ — но это уже тонкости, которые не понадобятся прямо сейчас.

Строку можно присвоить переменной точно так же, как число:

city = 'Москва'
print(city)   # Москва

Python выведет содержимое строки без кавычек — именно так, как вы её написали.

Конкатенация и повторение строк: операторы + и *

Оператор + уже знаком вам по арифметике — но со строками он работает иначе. Вместо сложения чисел он соединяет две строки в одну новую:

first = 'При'
second = 'вет'
greeting = first + second
print(greeting)  # Привет

Python берёт символы первой строки, приписывает к ним символы второй и возвращает результат. Исходные строки не меняются — создаётся именно новая строка.

Можно соединять не только переменные, но и литералы напрямую:

full_name = 'Анна' + ' ' + 'Иванова'
print(full_name)  # Анна Иванова

Пробел здесь — отдельный строковый литерал ' '. Без него строки склеятся вплотную.

Оператор * тоже знаком по числам, но со строками он означает повторение. Нужно указать строку и целое число — в любом порядке:

line = '-' * 20
print(line)  # --------------------

echo = 3 * 'ха'
print(echo)  # хахаха

Это удобно, когда нужно нарисовать разделитель или сформировать строку из повторяющегося фрагмента — не приходится копировать символы вручную.

Важно понимать, что оба оператора работают только со строками. Нельзя написать 'Счёт: ' + 5 — Python не умеет сам решить, как смешать строку и число. Но об этом подробнее в следующей секции.

Длина строки: функция len()

Когда строка уже создана, часто нужно знать, сколько в ней символов. Для этого в Python есть встроенная функция len(). Она принимает строку и возвращает целое число — количество символов.

greeting = 'Привет'
n = len(greeting)
print(n)  # 6

Результат можно сразу сохранить в переменную, как здесь, а потом использовать дальше в программе — например, сравнивать длины двух строк или выводить в сообщении.

Важный момент: len() считает все символы без исключения. Пробел — символ. Запятая — символ. Восклицательный знак — тоже:

phrase = 'Привет, мир!'
print(len(phrase))  # 12

Здесь двенадцать символов: шесть букв слова «Привет», запятая, пробел, три буквы слова «мир» и восклицательный знак. Интуитивно кажется, что «слов два», но len() работает посимвольно, не пословно.

Ещё одна деталь: пустая строка '' содержит ноль символов, и len('') вернёт 0. Это не ошибка — просто строка без содержимого.

Типичные ошибки и сквозной пример

Соберём всё вместе в одной программе — так проще увидеть, как строковый литерал, конкатенация, повторение и len() работают совместно:

# Создаём строки
greeting = 'При' + 'вет'   # конкатенация двух литералов
name = "Мария"

# Собираем приветствие
message = greeting + ', ' + name + '!'
print(message)             # Привет, Мария!

# Рисуем разделитель нужной длины
separator = '-' * len(message)
print(separator)           # --------------

# Длина готовой строки
print(len(message))        # 14

Что здесь происходит: len(message) возвращает число символов в message (их ровно 14), и это число сразу передаётся в * — разделитель получается ровно той же ширины, что и сообщение. Ни одна из переменных не меняется после создания: каждый + и * порождает новую строку.

Ошибка, которую легко совершить

Когда нужно добавить число к строке, первый импульс — написать +. Например:

score = 42
print('Счёт: ' + score)   # TypeError!

Python выбросит:

TypeError: can only concatenate str (not "int") to str

Он не пытается угадать, что вы имели в виду. Строка и целое число — разные типы, и + не умеет их смешивать. Сообщение об ошибке прямо указывает на причину: can only concatenate str (not "int") to str.

Сейчас достаточно уметь читать это сообщение и понимать: один из операндов оказался не строкой. Как правильно соединять строки с числами — разберём в одном из следующих уроков.

Попробуйте решить

Какие два варианта записи создают одно и то же строковое значение в Python?

Продолжить с проверкой и прогрессом

Откройте интерактивный раннер с заданиями урока.

Перейти к интерактивному уроку