HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>15 июл 2025</li>
2 <ul><li>15 июл 2025</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Редактируем строки без лишнего кода.</p>
4 </ul><p>Редактируем строки без лишнего кода.</p>
5 <p>Иллюстрация: Оля Ежак для Skillbox Media</p>
5 <p>Иллюстрация: Оля Ежак для Skillbox Media</p>
6 <p>Филолог и технарь, пишет об IT так, что поймут даже новички. Коммерческий редактор, автор технических статей для vc.ru и "Хабра".</p>
6 <p>Филолог и технарь, пишет об IT так, что поймут даже новички. Коммерческий редактор, автор технических статей для vc.ru и "Хабра".</p>
7 <p>Если вы недавно начали изучать Python, скорее всего, ваша первая программа выводила фразу "Hello, world!". Так бывает почти у всех. Но, полагаем, уже скоро вам захочется вывести другую строку - "Hello, job!".</p>
7 <p>Если вы недавно начали изучать Python, скорее всего, ваша первая программа выводила фразу "Hello, world!". Так бывает почти у всех. Но, полагаем, уже скоро вам захочется вывести другую строку - "Hello, job!".</p>
8 <p>Для замены одного слова на другое в Python удобно использовать метод replace(). В статье мы разберём, как это работает. Надеемся, что после его изучения вы так же легко справитесь с поиском своей первой "job".</p>
8 <p>Для замены одного слова на другое в Python удобно использовать метод replace(). В статье мы разберём, как это работает. Надеемся, что после его изучения вы так же легко справитесь с поиском своей первой "job".</p>
9 <p><strong>Содержание</strong></p>
9 <p><strong>Содержание</strong></p>
10 <ul><li><a>Как работает функция replace()</a></li>
10 <ul><li><a>Как работает функция replace()</a></li>
11 <li><a>Как использовать метод replace()</a></li>
11 <li><a>Как использовать метод replace()</a></li>
12 <li><a>Практика: пишем текстовый фильтр с replace()</a></li>
12 <li><a>Практика: пишем текстовый фильтр с replace()</a></li>
13 </ul><p>Метод replace() в Python - это встроенная функция для работы со строками, которая имеет следующий синтаксис:</p>
13 </ul><p>Метод replace() в Python - это встроенная функция для работы со строками, которая имеет следующий синтаксис:</p>
14 строка.replace(что_заменить, на_что_заменить, сколько_раз_заменить)<p>Формально это<a>выглядит</a>так:</p>
14 строка.replace(что_заменить, на_что_заменить, сколько_раз_заменить)<p>Формально это<a>выглядит</a>так:</p>
15 str.replace(old, new, count=-1)<p>Посмотрите, что здесь происходит:</p>
15 str.replace(old, new, count=-1)<p>Посмотрите, что здесь происходит:</p>
16 <ul><li>str - имя переменной, в которой хранится исходная строка. Это может выглядеть, например, так: text = "Hello, world!".</li>
16 <ul><li>str - имя переменной, в которой хранится исходная строка. Это может выглядеть, например, так: text = "Hello, world!".</li>
17 <li>old - подстрока, которую нужно найти и заменить. В строке Hello, world! мы будем менять слово world. А вообще, подстрокой считается любая последовательность символов внутри строки. Это может быть слово, часть слова или один символ. То есть помимо слова world в качестве подстроки мы можем выбрать Hello, lo или даже просто o.</li>
17 <li>old - подстрока, которую нужно найти и заменить. В строке Hello, world! мы будем менять слово world. А вообще, подстрокой считается любая последовательность символов внутри строки. Это может быть слово, часть слова или один символ. То есть помимо слова world в качестве подстроки мы можем выбрать Hello, lo или даже просто o.</li>
18 <li>new - подстрока, которая подставляется вместо old. В нашем примере такой подстрокой будет слово job.</li>
18 <li>new - подстрока, которая подставляется вместо old. В нашем примере такой подстрокой будет слово job.</li>
19 <li>count - необязательный параметр, который позволяет указать, сколько первых совпадений нужно заменить. Если не указывать count или явно задать count=-1, то заменятся все совпадения. Так, если в строке Python hello, hello, hello заменить hello на hi с параметром count=2, то результат будет Python hi, hi, hello. А если оставить значение по умолчанию, то мы получим Python hi, hi, hi.</li>
19 <li>count - необязательный параметр, который позволяет указать, сколько первых совпадений нужно заменить. Если не указывать count или явно задать count=-1, то заменятся все совпадения. Так, если в строке Python hello, hello, hello заменить hello на hi с параметром count=2, то результат будет Python hi, hi, hello. А если оставить значение по умолчанию, то мы получим Python hi, hi, hi.</li>
20 </ul><p>В следующем разделе мы разберём примеры использования метода replace(). Чтобы лучше усвоить материал, попробуйте повторить их самостоятельно. Для этого вам нужно<a>установить Python</a>и <a>выбрать редактор кода</a>. А если не хочется ничего устанавливать, воспользуйтесь бесплатным сервисом Google Colab и запускайте код прямо в браузере.</p>
20 </ul><p>В следующем разделе мы разберём примеры использования метода replace(). Чтобы лучше усвоить материал, попробуйте повторить их самостоятельно. Для этого вам нужно<a>установить Python</a>и <a>выбрать редактор кода</a>. А если не хочется ничего устанавливать, воспользуйтесь бесплатным сервисом Google Colab и запускайте код прямо в браузере.</p>
21 <p>Перед рассмотрением примеров обратите внимание ещё на один момент: метод replace() чувствителен к регистру. Это значит, что он воспринимает строки World и world как разные последовательности символов, поэтому при замене будет работать только точное совпадение. А теперь к практике.</p>
21 <p>Перед рассмотрением примеров обратите внимание ещё на один момент: метод replace() чувствителен к регистру. Это значит, что он воспринимает строки World и world как разные последовательности символов, поэтому при замене будет работать только точное совпадение. А теперь к практике.</p>
22 <p><strong>Простая подстановка слова.</strong>Завершим пример из введения и заменим наше единственное вхождение слова world на job:</p>
22 <p><strong>Простая подстановка слова.</strong>Завершим пример из введения и заменим наше единственное вхождение слова world на job:</p>
23 text = "Hello, world!" new_text = text.replace("world", "job") print(new_text) # Hello, job!<p>Дополнительно проверим чувствительность к регистру. Попробуем заменить job на Job и убедимся, что результат не изменится:</p>
23 text = "Hello, world!" new_text = text.replace("world", "job") print(new_text) # Hello, job!<p>Дополнительно проверим чувствительность к регистру. Попробуем заменить job на Job и убедимся, что результат не изменится:</p>
24 text = "Hello, job!" new_text = text.replace("Job", "developer") print(new_text) # Hello, job!<p><strong>Работа с символами.</strong>Заменим все точки в предложении на запятые и проверим, как метод replace() справится с отдельными символами:</p>
24 text = "Hello, job!" new_text = text.replace("Job", "developer") print(new_text) # Hello, job!<p><strong>Работа с символами.</strong>Заменим все точки в предложении на запятые и проверим, как метод replace() справится с отдельными символами:</p>
25 text = "Python. Is. Easy. To. Learn!" new_text = text.replace(".", ",") print(new_text) # Python, Is, Easy, To, Learn!<p><strong>Частичная подстановка.</strong>Воспользуемся параметром count и немного изменим строку из песни Nirvana:</p>
25 text = "Python. Is. Easy. To. Learn!" new_text = text.replace(".", ",") print(new_text) # Python, Is, Easy, To, Learn!<p><strong>Частичная подстановка.</strong>Воспользуемся параметром count и немного изменим строку из песни Nirvana:</p>
26 text = "Hello, hello, hello, how low" new_text = text.replace("hello", "hi", 2) print(new_text) # Hello, hi, hi, how low<p><strong>Множественная подстановка.</strong>Продолжим разбирать строку из песни Nirvana, но теперь заменим сразу несколько слов:</p>
26 text = "Hello, hello, hello, how low" new_text = text.replace("hello", "hi", 2) print(new_text) # Hello, hi, hi, how low<p><strong>Множественная подстановка.</strong>Продолжим разбирать строку из песни Nirvana, но теперь заменим сразу несколько слов:</p>
27 text = "Hello, hello, hello, how low\nWith the lights out, it's less dangerous\nHere we are now, entertain us" new_text = ( text.replace("hello", "hi") .replace("low", "high") .replace("lights", "mood") .replace("dangerous", "chill") ) print(new_text) # Hello, hi, hi, how high # With the mood out, it's less chill # Here we are now, entertain us<p><strong>Удаление части строки.</strong>В Python пустая строка также считается строкой, поэтому с помощью replace() можно удалять ненужные фрагменты текста. Для этого достаточно указать, что мы хотим удалить, а в качестве подстановки передать пустые кавычки "". Например, уберём дефисы из телефонного номера, чтобы остались только цифры:</p>
27 text = "Hello, hello, hello, how low\nWith the lights out, it's less dangerous\nHere we are now, entertain us" new_text = ( text.replace("hello", "hi") .replace("low", "high") .replace("lights", "mood") .replace("dangerous", "chill") ) print(new_text) # Hello, hi, hi, how high # With the mood out, it's less chill # Here we are now, entertain us<p><strong>Удаление части строки.</strong>В Python пустая строка также считается строкой, поэтому с помощью replace() можно удалять ненужные фрагменты текста. Для этого достаточно указать, что мы хотим удалить, а в качестве подстановки передать пустые кавычки "". Например, уберём дефисы из телефонного номера, чтобы остались только цифры:</p>
28 phone = "+7-495-123-45-67" cleaned_phone = phone.replace("-", "") print(cleaned_phone) # +74951234567<p>В реальных проектах метод replace() часто используют для обработки и преобразования текстов. Например, с его помощью можно очищать комментарии от нежелательных слов, исправлять опечатки или скрывать конфиденциальные данные: имена, номера телефонов и прочие.</p>
28 phone = "+7-495-123-45-67" cleaned_phone = phone.replace("-", "") print(cleaned_phone) # +74951234567<p>В реальных проектах метод replace() часто используют для обработки и преобразования текстов. Например, с его помощью можно очищать комментарии от нежелательных слов, исправлять опечатки или скрывать конфиденциальные данные: имена, номера телефонов и прочие.</p>
29 <p>Давайте создадим простой текстовый фильтр: добавим в него список нехороших фраз и будем заменять их звёздочками при вводе текста.</p>
29 <p>Давайте создадим простой текстовый фильтр: добавим в него список нехороших фраз и будем заменять их звёздочками при вводе текста.</p>
30 <p><strong>Шаг 1.</strong>Создадим список слов, которые программа будет искать в тексте:</p>
30 <p><strong>Шаг 1.</strong>Создадим список слов, которые программа будет искать в тексте:</p>
31 bad_words = [ "php лучше python", "пишу код без тестов", "Stack Overflow умер", "люблю xml", "верстаю на диванах", "дебажу в проде", "всё работает, не трогай", "написал свой фреймворк", "просто добавь AI", "джава лучше всех", "всё на jQuery", "css - это просто", "мне не нужен ваш git", "главное - чтобы запускалось", "типизация мешает творчеству" ]<p><strong>Шаг 2.</strong>Спросим у пользователя, что он хочет написать:</p>
31 bad_words = [ "php лучше python", "пишу код без тестов", "Stack Overflow умер", "люблю xml", "верстаю на диванах", "дебажу в проде", "всё работает, не трогай", "написал свой фреймворк", "просто добавь AI", "джава лучше всех", "всё на jQuery", "css - это просто", "мне не нужен ваш git", "главное - чтобы запускалось", "типизация мешает творчеству" ]<p><strong>Шаг 2.</strong>Спросим у пользователя, что он хочет написать:</p>
32 user_text = input("Введите текст: ")<p><strong>Шаг 3.</strong>Пройдёмся<a>циклом</a>по всем словам из нашего списка и заменим их на звёздочки той же длины:</p>
32 user_text = input("Введите текст: ")<p><strong>Шаг 3.</strong>Пройдёмся<a>циклом</a>по всем словам из нашего списка и заменим их на звёздочки той же длины:</p>
33 for word in bad_words: stars = "*" * len(word) user_text = user_text.replace(word, stars)<p><strong>Шаг 4.</strong>Выведем отредактированный текст после цензуры:</p>
33 for word in bad_words: stars = "*" * len(word) user_text = user_text.replace(word, stars)<p><strong>Шаг 4.</strong>Выведем отредактированный текст после цензуры:</p>
34 print("Результат:") print(user_text)<p>Теперь попробуйте вставить в поле ввода следующую фразу или придумайте свою: "Я пишу код без тестов, и всё работает, - не понимаю, зачем это нужно?" В результате вы должны увидеть много звёздочек:</p>
34 print("Результат:") print(user_text)<p>Теперь попробуйте вставить в поле ввода следующую фразу или придумайте свою: "Я пишу код без тестов, и всё работает, - не понимаю, зачем это нужно?" В результате вы должны увидеть много звёздочек:</p>
35 Я *******************, и всё работает, - не понимаю, зачем это нужно?<p>Наша программа готова, но её всегда можно доработать. Попробуйте, например, добавить учёт регистра, расширить список нежелательных слов или настроить фильтрацию сразу нескольких слов в одной фразе.</p>
35 Я *******************, и всё работает, - не понимаю, зачем это нужно?<p>Наша программа готова, но её всегда можно доработать. Попробуйте, например, добавить учёт регистра, расширить список нежелательных слов или настроить фильтрацию сразу нескольких слов в одной фразе.</p>
36 <p>Python для всех</p>
36 <p>Python для всех</p>
37 <p>Вы освоите Python на практике и создадите проекты для портфолио - телеграм-бот, веб-парсер и сайт с нуля. А ещё получите готовый план выхода на удалёнку и фриланс. Спикер - руководитель отдела разработки в "Сбере".</p>
37 <p>Вы освоите Python на практике и создадите проекты для портфолио - телеграм-бот, веб-парсер и сайт с нуля. А ещё получите готовый план выхода на удалёнку и фриланс. Спикер - руководитель отдела разработки в "Сбере".</p>
38 <p><a>Пройти бесплатно</a></p>
38 <p><a>Пройти бесплатно</a></p>
39 <a><b>Бесплатный курс по разработке на Python ➞</b>Пройдите бесплатный курс по Python и создайте с нуля телеграм-бот, веб-парсер и сайт. Спикер - руководитель отдела разработки в "Сбере". Пройти курс</a>
39 <a><b>Бесплатный курс по разработке на Python ➞</b>Пройдите бесплатный курс по Python и создайте с нуля телеграм-бот, веб-парсер и сайт. Спикер - руководитель отдела разработки в "Сбере". Пройти курс</a>