Случаи Фанни

#python

#python

Вопрос:

Фанни присваивается строка вместе со строкой, которая содержит один символ x. Она должна удалить символ x из заданной строки. Помогите ей написать функцию для удаления всех вхождений символа x из заданной строки. Спецификация ввода:

Ввод 1: входные строки

Ввод 2: строка, содержащая любой символ x

Спецификация вывода:

Строка без появления символа x

Пример 1:

Ввод:

добро пожаловать в mettl

l

Вывод:

мы пришли к метту

Объяснение: Поскольку I является символом, который требуется удалить, поэтому все вхождения I удаляются, сохраняя все остальные символы.

Пример 2:

ввод1: у меня нет колец

Ввод2: o

Вывод: у меня есть f колец

МОЕ решение:

 def extractSecretMessage(Str, Sub): 
    Str= Str.replace(Sub, " ")     
    return Str.strip() 
Str = input("")
Sub = input("")
print(extractSecretMessage(Str, Sub)) 

  

ОШИБКА:
Ввод (стандартный код)

Тамиларасан гуна — ваш вывод (стандартный вывод)

Ожидаемый результат от T mil r s n gun

Сообщение компилятора Tmilrsn gun

Хорошая попытка, но вы не прошли тестовый пример!

Комментарии:

1. Но в чем вопрос?

2. Фанни присваивается строка вместе со строкой, которая содержит один символ x. Она должна удалить символ x из заданной строки. Помогите ей написать функцию для удаления всех вхождений символа x из заданной строки. Спецификация ввода: Ввод 1: строка ввода s Ввод 2: строка, содержащая любой символ x Спецификация вывода: строка без появления символа x Пример 1: Ввод: добро пожаловать в mettl l Вывод: мы приходим в mett

3. Нет, в чем ваш вопрос. StackOverflow — это не место для «создания задачи для меня».

4. Первые два тестовых примера пройдены, но третий показывает ошибку. Ввод (стандартный код): Тамиларасан гуна ваш вывод (стандартный вывод) Ожидаемый результат T mil r s n gun — Tmilrsn gun — Tmilrsn gun

Ответ №1:

Проблема в том, что когда вы должны удалить символ, вы заменяете его пробелом, тогда как вы должны заменить его пустой строкой.

Другая потенциальная проблема (хотя и не раскрыта в этих примерах) заключается в том, что вы вызываете strip() (который удалит начальные и конечные пробелы), когда в спецификации не указано, что вы должны это делать. (В некоторых случаях это может маскировать предыдущую ошибку, если пробел, который вы ошибочно добавили, был в начале или конце строки.)

Где у вас есть:

     Str= Str.replace(Sub, " ")     
    return Str.strip() 
  

вы должны использовать:

     Str= Str.replace(Sub, "")     
    return Str
  

или просто:

     return Str.replace(Sub, "")