Python: строки
«Python: строки» — тема, где важно не заучивание, а аккуратность. Показываем по шагам: определения, разбор типового задания, оформление ответа и критерии.
Что такое строки в Python
Если программа должна работать с именами, сообщениями, ответами пользователя или текстом из файла, без строк не обойтись. Ошибки здесь часто появляются из-за кавычек, пробелов и попытки изменить строку «на месте». Разберём тему по шагам, чтобы ты уверенно читал код, решал задания ОГЭ и ЕГЭ и мог проверить себя на бесплатной практике в личном кабинете.
Строка — это последовательность символов: букв, цифр, пробелов и знаков препинания. В Python строковое значение записывают в одинарных или двойных кавычках. Для программы оба варианта равнозначны, но внутри строки иногда удобнее использовать противоположный вид кавычек.
name = 'Анна'
message = "Доброе утро!"
quote = 'Он сказал: "Привет!"'
Пустая строка тоже существует: ''. Её длина равна нулю. Важно отличать строку '123' от числа 123: первая хранит символы, второе участвует в арифметике.
Индексы и срезы
У каждого символа есть позиция, или индекс. Отсчёт начинается с нуля: первый символ имеет индекс 0, второй — индекс 1. Отрицательные индексы идут с конца: -1 обозначает последний символ, -2 — предпоследний.
word = 'Python'
word[0] → 'P'
word[2] → 't'
word[-1] → 'n'
Срез помогает взять часть строки. Запись text[a:b] включает символ с индексом a, но не включает символ с индексом b. Поэтому для первых трёх букв используют text[0:3]. Если начало или конец не указаны, Python подставляет границу строки.
text = 'информатика'
text[:4] → 'инфо'
text[4:] → 'рматика'
text[::2] → 'инoмтка'
Третий параметр среза — шаг. Срез text[::-1] разворачивает строку. Индекс за пределами строки вызывает ошибку IndexError, поэтому перед обращением к позиции полезно проверить длину через len().
Подписывай индексы над строкой на черновике. Особенно внимательно отмечай границу среза: правый индекс не входит в результат.
Операции и полезные методы
Строки можно складывать и повторять. Оператор + соединяет значения, а × в объяснениях соответствует оператору * в коде: он повторяет строку указанное число раз. Длину находят функцией len(). Проверить наличие фрагмента помогает оператор in.
'Py' + 'thon' → 'Python'
'ха' * 3 → 'хахаха'
len('дом') → 3
'тон' in 'бутон' → True
Методы lower() и upper() меняют регистр, strip() убирает пробелы по краям, replace() заменяет фрагмент. Метод split() разбивает строку на список частей, а join() собирает список обратно через выбранный разделитель.
| Выражение | Результат | Назначение |
|---|---|---|
| text.lower() | нижний регистр | сравнение без учёта регистра |
| text.strip() | текст без крайних пробелов | очистка ввода |
| text.replace('а', 'о') | замена символов | редактирование текста |
| ' '.join(words) | одна строка | объединение элементов |
Методы не изменяют исходную строку, а возвращают новую. Результат нужно сохранить в переменную или сразу использовать в выражении.
Форматирование и преобразование
Частая задача — вставить значения переменных в готовое сообщение. Удобнее всего использовать f-строку: перед открывающей кавычкой ставят букву f, а выражения помещают в фигурные скобки.
name = 'Илья'
\( score = 4 \)
text = f'{name} получил оценку {score}'
→ 'Илья получил оценку 4'
Функция str() превращает число в строку, а int() и float() могут превратить строку с числом в числовой тип. Нельзя напрямую складывать строку и число: Python сообщит об ошибке типов.
\( age = 14 \)
'Мне ' + str(age) + ' лет'
int('25') + 5 → 30
Разберём пример полностью. Пусть дана строка с лишними пробелами, а нужно получить слово в верхнем регистре. Сначала strip() очищает края, затем upper() меняет регистр. Каждый вызов возвращает новую строку, поэтому методы можно записать цепочкой.
raw = ' Python '
\( clean = raw.strip() \)
\( result = clean.upper() \)
или
\( result = raw.strip().upper() \)
Ответ: 'PYTHON'
Такой порядок важен: сначала удаляем лишние пробелы, затем преобразуем уже очищенное значение.
Типичные ошибки в задачах
Первая ошибка — путать индекс и количество символов. В строке из пяти символов последний индекс равен 4, потому что нумерация начинается с нуля. Вторая — ожидать, что присваивание text[0] = 'А' заменит символ. Строки неизменяемы, поэтому нужно создать новую строку, например text = 'А' + text[1:].
Третья ошибка связана с правой границей среза: text[1:4] содержит индексы 1, 2 и 3. Четвёртая — забыть скобки у метода: lower без () является ссылкой на метод, а не результатом его работы.
Не сравнивай строки с разным регистром и случайными пробелами. Перед проверкой часто нужны strip() и lower(): 'Да'.strip().lower() равно 'да'.
Наконец, помни о приоритете операций. Выражение 'а' * 3 + 'б' сначала повторяет 'а', а затем присоединяет 'б'. Если результат непонятен, разбей вычисление на промежуточные переменные и проверь тип каждого значения.
Для экзамена полезно вручную отслеживать строку после каждой операции, а не пытаться угадать ответ по внешнему виду кода. Дополнительные варианты можно решить в разделе подготовки к ОГЭ или ЕГЭ.
Что запомнить
Строка — последовательность символов в кавычках. Индексы начинаются с нуля, отрицательные индексы считают с конца, а срез не включает правую границу. Функция len() возвращает длину, оператор + соединяет строки, * повторяет их, in проверяет наличие фрагмента.
Методы lower(), upper(), strip(), replace(), split() и join() помогают обрабатывать текст. Они возвращают новое значение, потому что строки неизменяемы. Для вставки переменных применяй f-строки, а для безопасного соединения числа с текстом используй str().
Следующий шаг простой: зарегистрируйся и реши 5 заданий бесплатно в личном кабинете. После каждого ответа объясняй себе, какой символ стоит под каждым индексом и какой результат возвращает очередной метод. Так теория превращается в устойчивый навык.
Чем строка отличается от числа?
Строка хранит символы и записывается в кавычках: '25'. Число 25 можно складывать и умножать как значение. Для преобразования используют int(), float() или str().
Можно ли изменить один символ строки?
Нет, строки неизменяемы. Создай новую строку с помощью срезов, конкатенации или replace(). Например, text = 'А' + text[1:].
Почему срез не включает последний индекс?
Так устроено правило диапазонов Python: text[a:b] берёт позиции от a до b − 1. Это удобно для последовательного соединения соседних срезов без повторения символов.
Как закрепить тему после разбора?
Реши несколько коротких заданий: найди индексы, вычисли срезы, определи результат методов и исправь ошибки типов. Затем проверь решения в бесплатной практике и выпиши места, где пришлось считать вручную.
Закрепить тему на практике
Теория без практики забывается за неделю. В личном кабинете Просто Урок — задания именно по этой теме с проверкой каждого шага. Регистрация бесплатная.