#python
#python
Вопрос:
Вчера я начал изучать Python, и одна из задач на сайте, который я использую, заключается в том, чтобы попросить решить эту проблему ниже. Хотя я успешно решил проблему, она выглядит очень любительской, и я хотел бы, чтобы кто-нибудь умный мог показать лучшее решение или предложить какой-либо соответствующий совет. Спасибо.
Проблема: Напишите функцию censor, которая принимает две строки, text и word, в качестве входных данных. Он должен вернуть текст с выбранным вами словом, замененным звездочками.
Мое решение:
def censor(text, word):
text = text.split(" ")
for i in text:
if i == word:
i_index = text.index(i)
i = "*" * len(i)
del(text[i_index])
text.insert(i_index,i)
text = " ".join(text)
return text
Комментарии:
1. Это отклоняется, потому что это не по теме для Stack Overflow. Если у вас есть работающий код, но вы хотите знать, как его улучшить, воспользуйтесь Code Review .
Ответ №1:
def censor(text, word):
return text.replace(word, '*' * len(word))
Простая функция замены строки, практически найденная в любой стандартной библиотеке.
Комментарии:
1. это странно, потому что они сказали, что вы можете использовать split и join, но это намного проще. единственное, вы заменяете слово только одной звездочкой, но оно должно быть ‘*’ * len (word), поэтому, если вы обновите свой ответ, я приму его, спасибо.
2. @AshtonMorgan вы могли бы просто использовать
'*' * len(word)
, как вы сказали в комментариях, в качестве строки замены