Обработка строк: использование метода strip() в Python

Раздел: Python -> Основы языка Python

Основы работы с методом strip()

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

text = "   \t Hello, World! \n  "
result = text.strip()
print(repr(result))

что делает strip в python (метод strip() в python)

'Hello, World!'

математические примеры python (математические примеры в python)

Метод возвращает новую строку, не изменяя исходную. Это важно помнить, чтобы избежать ошибок.

Как удалить определённые символы, а не только пробелы?

В метод strip() можно передать строку, содержащую символы, которые требуется удалить. Он убирает все эти символы с обеих сторон, пока не встретится любой символ, не входящий в переданный набор.

url = "https://example.com/"
cleaned = url.strip("/:")
print(cleaned)

новые возможности условного оператора python (новые возможности условного оператора в python)

https://example.com

Float python пример (примеры float в python)

Здесь удалены символы '/' и ':' с концов строки. Обратите внимание, что символы в середине не трогаются.

Как удалить пробелы только слева или только справа?

Для этого существуют методы lstrip() и rstrip(), работающие аналогично strip, но только с одной стороны.

text = "   Python   "
print(repr(text.lstrip()))
print(repr(text.rstrip()))

Python кортежи примеры (примеры кортежей в python)

'Python   '
'   Python'

словарь в python пример (примеры словарей в python)

Это удобно, когда нужно сохранить пробелы с одной стороны или обработать строки, где отступы имеют значение.

Что произойдет, если передать пустую строку в качестве аргумента?

Если передать пустую строку, то strip() не удалит ни одного символа, так как набор удаляемых символов пуст.

text = "   test   "
print(repr(text.strip("")))

является ли число четным python (проверка числа на четность в python)

'   test   '

типы данных в python с примерами (типы данных в python с примерами)

Это может быть неочевидным поведением для новичков.

Типичные ошибки и их решение:

  • Забыли присвоить результат. Поскольку strip возвращает новую строку, исходная остаётся неизменной. Всегда нужно сохранять результат.
  • s = "  abc  "
    s.strip()
    print(repr(s))  # '  abc  '

    множественный выбор python (множественный выбор (if-elif-else) в python)

    '  abc  '
  • Путаница с replace. strip не удаляет символы внутри строки. Если нужно убрать все вхождения символа, используется replace или translate, а не strip.
  • Удаление символов Unicode. Метод strip() корректно обрабатывает пробельные символы Unicode (например, неразрывный пробел \xa0). Однако, если передать строку с символами, которые не являются пробельными, они будут удаляться посимвольно. Важно понимать, что удаление происходит с краёв, и как только встречается символ не из набора - процесс останавливается.
  • Использование lstrip/rstrip без аргументов. Удаляют только пробельные символы с соответствующей стороны.

Расширенные примеры использования strip()

Удаление пунктуации с концов строки

Пример
import string
text = "!!!Привет, мир!!!?"
cleaned = text.strip(string.punctuation)
print(cleaned)  # 'Привет, мир'
Привет, мир

Очистка строк из файла от переводов строк

Пример
with open("data.txt", "r") as f:
    lines = [line.strip() for line in f]
print(lines)

Удаление нескольких символов (но только с краёв)

Пример
phone = "+7 (123) 456-78-90"
cleaned = phone.strip("+()- ")
print(cleaned)  # '7 (123) 456-78-90'
7 (123) 456-78-90

Валидация пользовательского ввода

Пример
user_input = "  yes  "
if user_input.strip().lower() == "yes":
    print("Подтверждено")
Подтверждено

Работа с Unicode неразрывным пробелом

Пример
text = "\u00a0Python\u00a0"  # неразрывный пробел
print(repr(text.strip()))  # 'Python'
'Python'

Сравнение производительности: strip vs replace

Пример
import timeit
s = "   abc   "
print(timeit.timeit("s.strip()", globals=globals()))
print(timeit.timeit("s.replace(' ', '')", globals=globals()))

Цепочка методов: split, strip, join

Пример
text = "  a, b, c,  d  "
items = [x.strip() for x in text.split(",")]
print(items)  # ['a', 'b', 'c', 'd']
['a', 'b', 'c', 'd']

Удаление только пробелов (не табуляции) с помощью аргумента

Пример
text = " \t test \t "
cleaned = text.strip(" ")  # удаляет только пробелы
print(repr(cleaned))  # '\t test \t'
'\t test \t'

Отличие lstrip от removeprefix (Python 3.9+)

Пример
prefix = "prefix_"
s = "prefix_value"
print(s.lstrip("prefix_"))  # 'value' - может удалить лишнее
print(s.removeprefix("prefix_"))  # 'value' - безопасно
value
value

Метод strip() в Python - comments

En
что делает strip в python (python)