Написать функцию с именем string_finder.string_finder должен принимать два параметра: целевую строку и строку поиска.Функция будет искать строку поиска в целевой строке.
Функция должна возвращать строку, представляющую, где в целевой строке была найдена строка поиска:
Если строка поиска находится на самомначало целевой строки, затем вернуть «Начало».Например:
string_finder("Boston Common", "Boston") -> "Beginning"
Если строка поиска находится в самом конце целевой строки, вернуть «Конец».Например:
string_finder("Boston Common", "Common") -> "End"
Если строка поиска находится в целевой строке, но не в самом начале или в самом конце, верните «Средний». Например:
string_finder("Boston Common", "ton") -> "Middle"
Если строка поискавообще не находится в целевой строке, затем возвращает «Не найдено». Например:
string_finder("Boston Common", "Idaho") -> "Not found"
Предположим, что нас интересует только первый экземпляр строки поиска, если он появляется несколько раз в целевой строкеи эта строка поиска определенно короче целевой строки.
Я могу написать функцию, которая использует условные выражения (if, elif и др.) и метод find () в Python 3. В некоторых из моихусловные выражения с методом find (), я использую все три параметра для метода find (): строку, начальный индекс и конечный индекс.
def string_finder(target_string, search_string):
if search_string.find(target_string, 0, len(search_string)):
return "Beginning"
elif search_string.find(target_string, -1, -(len(target_string) - len(search_string))):
return "End"
elif search_string.find(target_string):
return "Middle"
else:
return "Not found"
Ниже приведены некоторые строки кода, которые будут проверятьсяваша функция. Вы можете изменить значение переменной (ей), чтобы проверить вашу функцию с различными входами.
Если ваша функция работает правильно, она будет сначала печатать: Start, Middle, End, Not found, каждый на своей собственной строке.
print(string_finder("Boston Common", "Boston"))
print(string_finder("Boston Common", "ton"))
print(string_finder("Boston Common", "Common"))
print(string_finder("Boston Common", "Idaho"))
который должен напечатать
Beginning
Middle
End
Not found
Однако, с моим текущим кодом я получаю:
Beginning
Beginning
Beginning
Beginning
Я не могу понять, как я испортил свои условия и как настроить.Кроме того, я открыт для любых более эффективных способов решения этой проблемы.