/
Вопросы и ответы
/
Python
/

Что делает функция strip в Python?

Что делает функция strip в Python?

4 года назад

Andrey Moshkov

Ответы

12

Метод strip() по умолчанию убирает пробелы в начале и в конце строки, например:

1
2
3
4
5
txt = '     banana     '

x = txt.strip()

print('of all fruits', x, 'is my favorite') # => of all fruits, banana, is my favorite

Если передать методу в качестве аргумента какие либо символы, то метод будет убирать их из начала и конца строки:

1
2
3
4
5
txt = ',,,,,rrttgg.....banana....rrr'

x = txt.strip(',.grt')

print(x) # => banana

4 года назад

Владимир Устянивский

5

Функция strip в Python удаляет пробелы (или другие указанные символы) в начале и в конце строки.

Пример:

1
2
3
4
text = "  Привет, мир!  "
clean_text = text.strip()
print(clean_text)
# Вывод: "Привет, мир!"

Можно также указать символы, которые нужно удалить:

1
2
3
4
text = "###Привет, мир!###"
clean_text = text.strip('#')
print(clean_text)
# Вывод: "Привет, мир!"

2 года назад

Elena Gromova

0

str.strip() возвращает новую строку без пробельных символов в начале и в конце. Пробельные символы — это пробел, \t, \n, \r и другие невидимые символы. Исходная строка не меняется.

1
2
3
name = "  Hexlet \n"
print(name.strip())  # => 'Hexlet'
print(name)          # => '  Hexlet \n' — исходная строка осталась прежней

Проверено на Python 3.12.

Чаще всего strip нужен для ввода

input() и чтение файла приносят лишние пробелы и \n в конце строки:

1
2
3
4
5
6
answer = input("Продолжить? ").strip().lower()
if answer == "да":
    ...

with open("emails.txt") as f:
    emails = [line.strip() for line in f]

Без strip() строка "да " с пробелом не совпадёт с "да".

strip с аргументом

В аргументе передают символы, которые нужно убрать с краёв:

1
2
print("###Заголовок###".strip("#"))         # => 'Заголовок'
print("www.example.com".strip("cmowz."))    # => 'example'

Python воспринимает аргумент как набор отдельных символов. Порядок не важен. Метод снимает с каждого края символы из набора, пока не встретит символ вне набора.

Частая ошибка: убрать расширение файла

1
print("test.txt".strip(".txt"))  # => 'es'

Метод вернул es. Он убрал слева t, а справа t, x, t, ., t: все эти символы есть в наборе .txt.

Чтобы убрать подстроку целиком, есть removeprefix() и removesuffix() (Python 3.9 и новее):

1
2
print("test.txt".removesuffix(".txt"))  # => 'test'
print("https://hexlet.io".removeprefix("https://"))  # => 'hexlet.io'

lstrip и rstrip

МетодЧто убирает" hi " →
strip()с обоих краёв'hi'
lstrip()только слева'hi '
rstrip()только справа' hi'

rstrip("\n") убирает перевод строки и оставляет пробелы в конце, если они нужны.

Что strip не делает

  • Не трогает пробелы внутри строки. Чтобы схлопнуть их, используют " ".join(s.split()).
  • Не меняет строку на месте: строки в Python неизменяемые. Результат нужно присвоить: s = s.strip().

Строки и их методы разбирают в бесплатном курсе «Основы Python». Дальше язык изучают на профессии «Python-разработчик».

18 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845