Методы строк в Python: lower, strip, split
Автор: Казачкин Даниил Михайлович · Обновлено
Методы строк возвращают новые значения: исходная строка не меняется. strip удаляет пробельные символы по краям, lower приводит буквы к нижнему регистру, split разбивает текст на…
Методы строк возвращают новые значения: исходная строка не меняется. strip удаляет пробельные символы по краям, lower приводит буквы к нижнему регистру, split разбивает текст на список частей.
Нормализация пользовательской команды
raw = ' Start NOW '
clean = raw.strip().lower()
words = clean.split()
print(clean)
print(words)Ожидаемый вывод:
start now
['start', 'now']Вызовы можно объединять цепочкой, потому что результат одного метода является строкой для следующего. split без аргументов считает подряд идущие пробелы одним разделителем.
Аргумент меняет смысл split
'a,,b'.split(',') вернёт ['a', '', 'b'], сохранив пустую часть между запятыми. Это полезно для понимания структуры, но полноценный CSV имеет правила кавычек и требует модуля csv. Метод strip('ab') удаляет не точную подстроку, а любые символы a и b с обоих краёв — частая неожиданность.
Ошибка новичка — написать raw.lower без скобок. Тогда сохраняется объект метода, а не результат его вызова. Другая ошибка — ожидать изменения raw после raw.strip(); новое значение нужно присвоить или использовать сразу.
Разбор имени
Прочитайте строку с именем и фамилией, разрешив лишние пробелы по краям и между словами. С помощью split получите части и выведите их количество. Для ввода « Анна Иванова » ожидаются список из двух элементов и число 2. Затем соберите нормализованную строку через ' '.join(parts). Проверьте пустой ввод: split вернёт пустой список, поэтому нельзя без проверки обращаться к parts[0].
Метод или функция
Сравните записи text.lower(), len(text) и sorted(text). Найдите объект, которому принадлежит метод, и аргумент, который получает функция. Сохраните исходную строку с пробелами, по очереди примените strip, lower и split, выводя repr каждого промежуточного значения. Затем переставьте операции и найдите вариант, который уже работает со списком и поэтому не имеет строкового метода lower. Такая трассировка помогает читать цепочки вызовов по типам. В финальной версии оставьте этапы в отдельных переменных, если это делает преобразование яснее одной длинной строки.
Практикум: нормализация списка слов
Прочитайте строку Море, ЛЕС,море , удалите пробелы по краям, разделите по запятым и нормализуйте каждый элемент через strip и lower. Отфильтруйте пустые фрагменты и посчитайте частоты. Проверьте строку без запятой, две запятые подряд и только пробелы. Сравните split() без аргумента с split(","): они решают разные задачи. Соберите очищенные слова обратно через join, не добавляя разделитель вручную в цикле.
Контрольная точка
В каком порядке должны применяться разделение и очистка каждого элемента? Покажите промежуточный список после split, чтобы пустой или пробельный фрагмент не исчез незаметно.
Частые вопросы
Почему lower недостаточно для любого текста?
lower() решает базовое приведение регистра. Для сложного международного сравнения бывают нужны casefold, правила Unicode и предметная нормализация. В учебной задаче достаточно явно зафиксировать допустимый алфавит.