Программа курса:
Методы строк 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
, а не конкретную подстроку!