Функция replace_ending заменяет старую строку в предложении новой строкой, но только если предложение заканчивается старой строкой - PullRequest
0 голосов
/ 11 апреля 2020

Функция replace_ending заменяет старую строку в предложении новой строкой, но только если предложение заканчивается старой строкой. Если в предложении присутствует более одного вхождения старой строки, заменяется только одна в конце, а не все. Например, replace_ending ("abcab c", "ab c", "xyz") должен возвращать abcxyz, а не xyzxyz или xyzab c. Сравнение строк чувствительно к регистру, поэтому replace_ending ("abcab c", "AB C", "xyz") должен возвращать abcab c (без изменений).

def replace_ending(sentence, old, new):
# Check if the old string is at the end of the sentence 
if ___:
    # Using i as the slicing index, combine the part
    # of the sentence up to the matched string at the 
    # end with the new string
    i = ___
    new_sentence = ___
    return new_sentence

# Return the original sentence if there is no match 
return sentence

print(replace_ending("It's raining cats and cats", "cats", "dogs")) 
# Should display "It's raining cats and dogs"
print(replace_ending("She sells seashells by the seashore", "seashells", 
"donuts")) 
# Should display "She sells seashells by the seashore"
print(replace_ending("The weather is nice in May", "may", "april")) 
# Should display "The weather is nice in May"
print(replace_ending("The weather is nice in May", "May", "April")) 
# Should display "The weather is nice in April"

Ответы [ 2 ]

1 голос
/ 07 мая 2020
def replace_ending(sentence, old, new):
# Check if the old string is at the end of the sentence 
    if sentence.endswith(old):
    # Using i as the slicing index, combine the part
    # of the sentence up to the matched string at the 
    # end with the new string
        i = len(old)
        new_sentence = sentence[:-i]+new
    return new_sentence

# Return the original sentence if there is no match 
return sentence
0 голосов
/ 11 апреля 2020

Ответ ниже. вопрос принадлежит Google обучения python.

def replace_ending(sentence, old, new):
# Check if the old string is at the end of the sentence 
    if sentence.endswith(old):
    # Using i as the slicing index, combine the part
    # of the sentence up to the matched string at the 
    # end with the new string
        i = sentence.rfind(old)
        new_sentence = sentence[:i]+new
    return new_sentence

# Return the original sentence if there is no match 
return sentence
...