Корректировать удаление подстроки в начале строки

После проверки startswith удалите префикс срезом source[len(prefix):] либо ограничьте replace одним вхождением. В примере получится ' how how'.

Короткий ответ

Что ответить на собеседовании

После проверки startswith удалите префикс срезом source[len(prefix):] либо ограничьте replace одним вхождением. В примере получится ' how how'.

Подробный разбор

Ответ с пояснениями

Условие

Функция dif_str(source: str, prefix: str) -> str должна удалять prefix из source лишь в том случае, когда source начинается с prefix, и удалять только одно вхождение в начале. В текущей реализации удаляются все вхождения, что нужно исправить.

def dif_str(source: str, prefix: str) -> str:
    if source.startswith(prefix):
        return source.replace(prefix, '')
    return source

print(dif_str("how how how", "how"))

Ответ

После проверки startswith удалите префикс срезом source[len(prefix):] либо ограничьте replace одним вхождением. В примере получится ' how how'.

def dif_str(source: str, prefix: str) -> str:
    if source.startswith(prefix):
        return source[len(prefix):]
    return source

Срез точно выражает удаление начального фрагмента. Пробел после первого how не входит в префикс, поэтому сохраняется: результат начинается с пробела. Остальные вхождения how остаются нетронутыми.

Пустой префикс имеет длину ноль и не изменяет строку; при полном совпадении получится пустая строка. В Python 3.9+ тот же контракт реализует source.removeprefix(prefix). Не используйте lstrip(prefix): он удаляет набор символов, а не заданную подстроку.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее