Методы строк strip(), lstrip(), rstrip()

В программировании часто приходится работать со строками, и нередко в них проскакивают лишние пробелы, табуляции или даже неожиданные символы. Они могут появляться после чтения данных из файла, получения ввода от пользователя или просто в результате работы алгоритма.

Вот тут на помощь приходят методы strip(), lstrip() и rstrip(). Они помогают очистить строки от ненужных символов по краям, избавляя нас от неожиданных багов и лишнего головняка. Разбираемся, как это работает!

Метод strip()

Метод strip() позволяет убрать лишние символы с обеих сторон строки. По умолчанию он чистит пробелы, но если передать ему аргумент, то можно удалить и другие символы.

Синтаксис:

str.strip([chars])
  • chars – необязательный параметр, указывающий, какие символы удалить. Если его не указывать, удаляются пробелы, \n, \t и другие невидимые символы. Подробнее экранированных символах в этой лекции - 

Примеры:

text = "   Привет, мир!   "
print(text.strip())  # "Привет, мир!"

text2 = "--=Python=--"
print(text2.strip("-="))  # "Python"

Важные моменты:

  • Если передаёшь строку chars, он удаляет каждый символ из неё! То есть strip("abc") уберёт все a, b, c по краям, а не конкретное слово "abc".
text = "abcPythoncba"
print(text.strip("abc"))  # "Python"

Метод lstrip()

Если strip() чистит всё, то lstrip() (от "left strip") убирает символы только слева.

Синтаксис:

str.lstrip([chars])

Примеры:

text = "   Hello, world!"
print(text.lstrip())  # "Hello, world!"

text2 = "...Python..."
print(text2.lstrip("."))  # "Python..."

Полезно, если, например, читаешь ввод с консоли и хочешь убрать ведущие пробелы.


Метод rstrip()

Аналогично rstrip() ("right strip") чистит только справа.

Синтаксис:

str.rstrip([chars])

Примеры:

text = "Hello, world!    "
print(text.rstrip())  # "Hello, world!"

text2 = "...Python..."
print(text2.rstrip("."))  # "...Python"

Часто используется перед сохранением данных, чтобы случайные пробелы или \n не мешались.


Сравнительная таблица

МетодЧто делаетПо умолчанию удаляет
strip()Удаляет символы слева и справаПробелы, \n, \t
lstrip()Удаляет символы слеваПробелы, \n, \t
rstrip()Удаляет символы справаПробелы, \n, \t

Частые ошибки и фишки при использовании strip()

Ошибка: удаление не всей строки, а отдельных символов

text = "abracadabra"
print(text.strip("ab"))  # "racadabr", а не "racadabra"

Почему? Потому что strip("ab") удаляет все a и b, а не конкретно "ab".

Фишка: удаление всех пробельных символов

text = " \t\n  Hello  \n\t "
print(text.strip())  # "Hello"

Фишка: обработка файловых путей

filename = "  report.pdf  "
print(filename.strip())  # "report.pdf"

Методы strip(), lstrip() и rstrip() – это отличные инструменты, чтобы навести порядок в строках. Используй их, когда чистишь ввод пользователя, работаешь с файлами или обрабатываешь текстовые данные. Главное – не забывай, что strip(chars) удаляет любые символы из chars, а не конкретную подстроку!

Перейти к следующему шагу

Возникли вопросы при прочтении лекции? Задайте вопрос в комментариях

Комментарии