Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
07 Май 2023
4 мин
2488

Использование метода replace() в python для работы со строками

Текст в Python хранится в строковых переменных. Чтобы заменить часть этого текста — есть специальный метод replace(). Рассказываем о нём и об особенностях

Текст в Python хранится в строковых переменных. Чтобы заменить часть этого текста — есть специальный метод replace(). Рассказываем о нём и об особенностях его применения.

Функция replace в Python

Функция — это встроенный в Python метод работы с кодом. Функция `replace()` позволяет заменять часть исходной строки на другую. Например, можно заменить в тексте «Привет, мир!» слово «Привет» на «Здравствуй».

Функцию могут называть и `str.replace()`, и просто `replace`:

🟢 `str` — это «string», строка. Это ключевое слово показывает: метод работает со строками, а не с числами или выбором «да/нет».

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

🟢 `replace` — ключевое слово, которое означает «заменить».

🟢 `()` — сюда подставляется аргумент: какую часть переменной на что заменить.

Чтобы узнать о других функциях в Python, а еще о переменных, классах и методах, приходите на курс от Skypro «Python-разработчик». Не только расскажем, что означают все эти вещи, но и дадим много практики, проект в портфолио и поможем найти работу через центр карьеры.

Как использовать функцию replace

Прописать функцию просто:

«`
str.replace(старый_текст, новый_текст, количество)
«`

🟢 Вместо «старый_текст» нужно указать текст, который надо заменить.
🟢 Вместо «новый_текст» — то, на что заменить.
🟢 Вместо «количество» — указать число: сколько раз произвести замену. Это пригодится, если «старый_текст» повторяется в строке несколько раз.

Пример:

«`
# Объявляем строковую переменную с текстом «привет, мир, привет!»
text = «привет, мир, привет!»
# Создаем новую переменную, которая заменит слово «привет» один раз
new_text = text.replace(«привет», «здравствуй», 1)
«`

Эта команда заменит только первое вхождение слова «привет». Проверить себя можно с помощью команды `print`, которая выводит информацию в консоль. Выведем значение переменной `new_text`:

«`
print(new_text) # Выведет «здравствуй, мир, привет!»
«`

Если нужно заменить все вхождения — количество указывать не надо:

«`
text = «привет, мир, привет!»
new_text = text.replace(«привет», «здравствуй») # Заменяет все вхождения
print(new_text) # Выведет «здравствуй, мир, здравствуй!»
«`

Как работает функция replace

Строки в Python — неизменяемые (immutable) объекты. Поэтому функция `replace()` не меняет изначальный текст. Она всегда создает новый текст с изменениями, а оригинальный текст остается прежним. Это легко проверить:

«`python
text = «привет, мир!»
new_text = text.replace(«привет», «здравствуй»)
print(new_text) # Вывод: здравствуй, мир!
print(text) # Вывод: привет, мир!
«`

В этом примере `text` не изменился. Удобно — если нужно сохранить оригинальный текст. Если хотите сохранить изменения в старой переменной, можете вызвать функцию и указать старую переменную:

text = «Привет, мир!»
text = text.replace(«Привет», «Здравствуй»)
print(text) # Вывод: Здравствуй, мир!

Но даже в этом случае функция replace() на самом деле создает новую строку.

🔴 Она берет текущую строку `text`, заменяет «привет» на «здравствуй» и возвращает новую строку с изменениями.
🔴 После этого новое значение присваивается старой переменной `text`.
🔴 Старая строка «привет, мир!» остается в памяти до тех пор, пока на нее есть ссылки.

Когда переменную `text` переназначают новой строке, старую строку может удалить сборщик мусора, если на нее больше нет ссылок.

Сборщик мусора — это механизм автоматического управления памятью приложения.

Но сборщик мусора может ошибиться и оставить старую переменную в памяти. Тогда могут возникнуть проблемы:

🟢 Может увеличиться потребление памяти и замедлиться работа приложения и сборщика мусора.
🟢 Старые данные могут вызывать ошибки и сбои в работе приложения — если подставляются вместо новых.

Поэтому лучше всегда сохранять новое значение в отдельной переменной.

На курсе «Python-разработчик» эксперты учат избегать ошибок новичков — запишитесь, если только начали осваивать новую для себя сферу программирования.

Главное про метод str.replace() в Python

🟢 Функция str.replace() — или просто replace() — заменяет одну часть строки на другую. Метод работает со строками, то есть текстами и цифрами в тексте, а не с числовыми, булевыми или другими значениями.

🟢 Чтобы заменить текст, вызовите str.replace(старый_текст, новый_текст, количество). Укажите, что именно нужно заменить, на что и сколько раз.

🟢 Функция replace() создает копию строковой переменной с изменениями, а оригинал остается прежним. Изменения можно сохранить в той же переменной, если присвоить ей результат функции replace. Но и в этом случае создается новая строка, а старая остается в памяти приложения.

🟢 Старая строка останется в памяти, пока на нее есть ссылки. Затем ее может удалить сборщик мусора. Если у него не получится это сделать — могут появиться ошибки.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий