Текст в 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. Но и в этом случае создается новая строка, а старая остается в памяти приложения.
🟢 Старая строка останется в памяти, пока на нее есть ссылки. Затем ее может удалить сборщик мусора. Если у него не получится это сделать — могут появиться ошибки.
Добавить комментарий