Python для новичковСтроки, модули и файлыМетоды строк для обработки текста

Методы строк для обработки текста

Уроки курсаМетоды строк для обработки текста

Методы очистки и изменения регистра: strip(), lower(), upper()

Самая частая ситуация при работе с пользовательским вводом — строка приходит с лишними пробелами по краям или в непредсказуемом регистре. Для этого у строк есть три метода.

strip(), lstrip(), rstrip()

strip() обрезает пробелы и символы переноса строки с обоих концов строки. Если нужно убрать только с одной стороны, есть lstrip() (левый край) и rstrip() (правый):

raw = '   Москва   '
print(raw.strip())   # 'Москва'
print(raw.lstrip())  # 'Москва   '
print(raw.rstrip())  # '   Москва'

Чаще всего нужен именно strip() — когда не знаешь, с какой стороны пришли лишние символы.

Можно передать в strip() аргумент — строку с символами, которые нужно обрезать:

path = '###раздел###'
print(path.strip('#'))  # 'раздел'

Но для работы с вводом пользователя такая форма нужна редко; без аргумента — стандартный случай.

lower() и upper()

lower() переводит все буквы строки в нижний регистр, upper() — в верхний:

city = 'САНКТ-ПЕТЕРБУРГ'
print(city.lower())  # 'санкт-петербург'

abbr = 'python'
print(abbr.upper())  # 'PYTHON'

Практическая ценность lower() — регистронезависимое сравнение. Пользователь может написать «Да», «ДА», «да» или «дА», и все четыре варианта должны обрабатываться одинаково:

answer = input('Продолжить? ').strip().lower()

if answer == 'да':
    print('Продолжаем')
else:
    print('Останавливаемся')

Здесь strip() и lower() вызываются подряд — это называется цепочкой методов. Каждый метод применяется к результату предыдущего. Такой стиль читается естественно: сначала убрали пробелы, потом привели к нижнему регистру.

upper() реже используется для сравнения, но пригождается для форматирования вывода — например, когда нужно показать заголовок или аббревиатуру.

Оба метода работают корректно с кириллицей — Python обрабатывает Unicode, так что 'Привет'.lower() даст 'привет' без каких-либо дополнительных настроек.