Как работает str.replace с параметром count в Python
@python_quizРазберем этот квиз
Кратко: метод str.replace(old, new, count) выполняет не перекрывающиеся замены слева направо и прекращает работу после достижения ограничения count. Дальше — разбор на примере.
Условие
Код:

Пошаговый разбор
Исходная строка: "aaaaa"
Ищем подстроку "aa" слева направо, замены не перекрываются.
- Первая найденная подстрока "aa" находится на позициях 0–1 (или [0:2]). Она заменяется на "b".
- После этой замены мы получаем: "b" + остаток оригинальной строки, начиная с позиции 2, то есть "aaa" => промежуточный результат: "baaa".
- Параметр count равен 1, значит дальше замен делать нельзя — алгоритм останавливается.
Итоговый вывод программы:

Проверка других значений count (демонстрация)
Чтобы лучше понять поведение, сравним несколько случаев:

Выводы:
- Без count: будут выполнены все неперекрывающиеся замены → "bba"
count=1: только первая → "baaa"count=2: две замены → "bba"
Обратите внимание: результат без count и при count=2 совпадают в этом примере, потому что в строке "aaaaa" есть ровно две неперекрывающиеся вхождения "aa" (на позициях 0–1 и 2–3).
Почему замены не перекрываются
Алгоритм при нахождении совпадения перемещает указатель вправо на длину найденной подстроки. Поэтому второе совпадение ищется уже после конца первого, а не с позиции 1 (не происходит перекрывания).
Если нужна замена перекрывающихся вхождений (редкий кейс), можно использовать регулярные выражения с lookahead:

(примечание: такие трюки с lookahead чаще требуют осторожности и тестирования — они меняют логику поиска вхождений)
Вывод
Метод str.replace с третьим аргументом выполняет указанное число неперекрывающихся замен слева направо. В конкретном примере с s = "aaaaa" и count = 1 результат — "baaa".